@datatechsolutions/tympan 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -4
- package/dist/{Avatar-P14MVkK1.js → Avatar-CU7B1WsX.js} +61 -1
- package/dist/{Avatar-P14MVkK1.js.map → Avatar-CU7B1WsX.js.map} +1 -1
- package/dist/avatars.js +1 -1
- package/dist/elements-DCGBSGS8.js +14699 -0
- package/dist/elements-DCGBSGS8.js.map +1 -0
- package/dist/elements-react.d.ts +1378 -0
- package/dist/elements-react.js +3639 -0
- package/dist/elements-react.js.map +1 -0
- package/dist/elements.bundle.js +5 -0
- package/dist/elements.d.ts +13520 -0
- package/dist/elements.js +3 -0
- package/dist/flow.css +174 -3
- package/dist/flow.d.ts +86 -4
- package/dist/flow.js +200 -11
- package/dist/flow.js.map +1 -1
- package/dist/{index-C3WAwKdm.d.ts → index-J-7EBkCL.d.ts} +175 -7
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/parse-Dq4x3Wet.js +345 -0
- package/dist/parse-Dq4x3Wet.js.map +1 -0
- package/dist/{src-Ds9ArSaP.js → src-uCyIE-Te.js} +859 -668
- package/dist/src-uCyIE-Te.js.map +1 -0
- package/dist/styles.css +6937 -2592
- package/docs/html-contract.md +644 -0
- package/package.json +25 -14
- package/src/avatars/GeneratedAvatar.tsx +41 -0
- package/src/avatars/avatarSvg.ts +252 -0
- package/src/avatars/avatars.test.tsx +268 -0
- package/src/avatars/index.ts +30 -0
- package/src/avatars/styles.ts +80 -0
- package/src/base.css +49 -0
- package/src/components/action-menu/ActionMenu.css +152 -0
- package/src/components/action-menu/ActionMenu.test.tsx +189 -0
- package/src/components/action-menu/ActionMenu.tsx +282 -0
- package/src/components/activity-feed/ActivityFeed.css +91 -0
- package/src/components/activity-feed/ActivityFeed.test.tsx +89 -0
- package/src/components/activity-feed/ActivityFeed.tsx +86 -0
- package/src/components/actor-chip/ActorChip.css +93 -0
- package/src/components/actor-chip/ActorChip.test.tsx +89 -0
- package/src/components/actor-chip/ActorChip.tsx +98 -0
- package/src/components/agent-output-card/AgentOutputCard.css +105 -0
- package/src/components/agent-output-card/AgentOutputCard.rtl.test.tsx +12 -0
- package/src/components/agent-output-card/AgentOutputCard.test.tsx +65 -0
- package/src/components/agent-output-card/AgentOutputCard.tsx +74 -0
- package/src/components/ambient-backdrop/AmbientBackdrop.css +45 -0
- package/src/components/ambient-backdrop/AmbientBackdrop.rtl.test.tsx +12 -0
- package/src/components/ambient-backdrop/AmbientBackdrop.test.tsx +60 -0
- package/src/components/ambient-backdrop/AmbientBackdrop.tsx +11 -0
- package/src/components/app-frame/AppFrame.css +285 -0
- package/src/components/app-frame/AppFrame.test.tsx +127 -0
- package/src/components/app-frame/AppFrame.tsx +231 -0
- package/src/components/app-frame/AppFrameRail.css +321 -0
- package/src/components/app-frame/RailFrame.test.tsx +159 -0
- package/src/components/app-frame/RailFrame.tsx +140 -0
- package/src/components/app-frame/RailNav.tsx +118 -0
- package/src/components/app-frame/frameContext.ts +22 -0
- package/src/components/app-launcher-grid/AppLauncherGrid.css +140 -0
- package/src/components/app-launcher-grid/AppLauncherGrid.test.tsx +103 -0
- package/src/components/app-launcher-grid/AppLauncherGrid.tsx +201 -0
- package/src/components/app-navigation/AppNavigation.css +354 -0
- package/src/components/app-navigation/AppNavigation.test.tsx +129 -0
- package/src/components/app-navigation/AppNavigation.tsx +372 -0
- package/src/components/app-navigation/builders.ts +117 -0
- package/src/components/attention-list/AttentionList.css +90 -0
- package/src/components/attention-list/AttentionList.test.tsx +84 -0
- package/src/components/attention-list/AttentionList.tsx +82 -0
- package/src/components/auth-frame/AuthFrame.css +85 -0
- package/src/components/auth-frame/AuthFrame.rtl.test.tsx +14 -0
- package/src/components/auth-frame/AuthFrame.test.tsx +89 -0
- package/src/components/auth-frame/AuthFrame.tsx +35 -0
- package/src/components/avatar/Avatar.css +134 -0
- package/src/components/avatar/Avatar.test.tsx +98 -0
- package/src/components/avatar/Avatar.tsx +114 -0
- package/src/components/brand-loader/BrandLoader.css +78 -0
- package/src/components/brand-loader/BrandLoader.rtl.test.tsx +13 -0
- package/src/components/brand-loader/BrandLoader.test.tsx +83 -0
- package/src/components/brand-loader/BrandLoader.tsx +34 -0
- package/src/components/brand-mark/BrandMark.css +60 -0
- package/src/components/brand-mark/BrandMark.rtl.test.tsx +16 -0
- package/src/components/brand-mark/BrandMark.test.tsx +60 -0
- package/src/components/brand-mark/BrandMark.tsx +76 -0
- package/src/components/brand-panel/BrandPanel.css +100 -0
- package/src/components/brand-panel/BrandPanel.rtl.test.tsx +13 -0
- package/src/components/brand-panel/BrandPanel.test.tsx +59 -0
- package/src/components/brand-panel/BrandPanel.tsx +61 -0
- package/src/components/brand-wordmark/BrandWordmark.css +37 -0
- package/src/components/breadcrumbs/Breadcrumbs.css +158 -0
- package/src/components/breadcrumbs/Breadcrumbs.test.tsx +104 -0
- package/src/components/breadcrumbs/Breadcrumbs.tsx +130 -0
- package/src/components/button/Button.css +214 -0
- package/src/components/button/Button.test.tsx +177 -0
- package/src/components/button/Button.tsx +205 -0
- package/src/components/calendar/Calendar.css +260 -0
- package/src/components/calendar/Calendar.test.tsx +178 -0
- package/src/components/calendar/Calendar.tsx +341 -0
- package/src/components/cascade-grid/CascadeGrid.css +31 -0
- package/src/components/cascade-grid/CascadeGrid.rtl.test.tsx +20 -0
- package/src/components/cascade-grid/CascadeGrid.test.tsx +126 -0
- package/src/components/cascade-grid/CascadeGrid.tsx +98 -0
- package/src/components/category-tabs/CategoryTabs.css +108 -0
- package/src/components/category-tabs/CategoryTabs.test.tsx +118 -0
- package/src/components/category-tabs/CategoryTabs.tsx +94 -0
- package/src/components/chart/Chart.css +215 -0
- package/src/components/chart/Chart.rtl.test.tsx +42 -0
- package/src/components/chart/Chart.test.tsx +187 -0
- package/src/components/chart/Chart.tsx +502 -0
- package/src/components/chart/chartMath.ts +73 -0
- package/src/components/chart/plot.ts +53 -0
- package/src/components/chart/types.ts +72 -0
- package/src/components/checkbox/Checkbox.css +168 -0
- package/src/components/checkbox/Checkbox.test.tsx +97 -0
- package/src/components/checkbox/Checkbox.tsx +168 -0
- package/src/components/chip-group/ChipGroup.css +182 -0
- package/src/components/chip-group/ChipGroup.test.tsx +135 -0
- package/src/components/chip-group/ChipGroup.tsx +169 -0
- package/src/components/choice-card/ChoiceCard.css +141 -0
- package/src/components/choice-card/ChoiceCard.test.tsx +111 -0
- package/src/components/choice-card/ChoiceCard.tsx +139 -0
- package/src/components/choice-grid/ChoiceGrid.css +110 -0
- package/src/components/choice-grid/ChoiceGrid.test.tsx +85 -0
- package/src/components/choice-grid/ChoiceGrid.tsx +85 -0
- package/src/components/choice-tile/ChoiceTile.css +79 -0
- package/src/components/choice-tile/ChoiceTile.test.tsx +118 -0
- package/src/components/choice-tile/ChoiceTile.tsx +57 -0
- package/src/components/command-palette/CommandPalette.css +296 -0
- package/src/components/command-palette/CommandPalette.test.tsx +190 -0
- package/src/components/command-palette/CommandPalette.tsx +340 -0
- package/src/components/command-palette/model.ts +156 -0
- package/src/components/compact-confirm/CompactConfirm.css +136 -0
- package/src/components/compact-confirm/CompactConfirm.test.tsx +119 -0
- package/src/components/compact-confirm/CompactConfirm.tsx +91 -0
- package/src/components/confirm-service/ConfirmService.test.tsx +121 -0
- package/src/components/confirm-service/ConfirmService.tsx +152 -0
- package/src/components/consent-banner/ConsentBanner.css +73 -0
- package/src/components/consent-banner/ConsentBanner.rtl.test.tsx +12 -0
- package/src/components/consent-banner/ConsentBanner.test.tsx +86 -0
- package/src/components/consent-banner/ConsentBanner.tsx +66 -0
- package/src/components/contact-card/ContactCard.css +105 -0
- package/src/components/contact-card/ContactCard.rtl.test.tsx +17 -0
- package/src/components/contact-card/ContactCard.test.tsx +58 -0
- package/src/components/contact-card/ContactCard.tsx +99 -0
- package/src/components/copy-identifier/CopyIdentifier.css +90 -0
- package/src/components/copy-identifier/CopyIdentifier.test.tsx +103 -0
- package/src/components/copy-identifier/CopyIdentifier.tsx +89 -0
- package/src/components/count-badge/CountBadge.css +54 -0
- package/src/components/count-badge/CountBadge.test.tsx +81 -0
- package/src/components/count-badge/CountBadge.tsx +68 -0
- package/src/components/currency-field/CurrencyField.css +88 -0
- package/src/components/currency-field/CurrencyField.test.tsx +147 -0
- package/src/components/currency-field/CurrencyField.tsx +219 -0
- package/src/components/data-table/DataTable.css +362 -0
- package/src/components/data-table/DataTable.test.tsx +214 -0
- package/src/components/data-table/DataTable.tsx +396 -0
- package/src/components/date-field/DateField.css +126 -0
- package/src/components/date-field/DateField.test.tsx +143 -0
- package/src/components/date-field/DateField.tsx +235 -0
- package/src/components/date-range-field/DateRangeField.css +140 -0
- package/src/components/date-range-field/DateRangeField.test.tsx +187 -0
- package/src/components/date-range-field/DateRangeField.tsx +231 -0
- package/src/components/delta-indicator/DeltaIndicator.css +58 -0
- package/src/components/delta-indicator/DeltaIndicator.rtl.test.tsx +19 -0
- package/src/components/delta-indicator/DeltaIndicator.test.tsx +69 -0
- package/src/components/delta-indicator/DeltaIndicator.tsx +88 -0
- package/src/components/details-popover/DetailsPopover.css +166 -0
- package/src/components/details-popover/DetailsPopover.test.tsx +92 -0
- package/src/components/details-popover/DetailsPopover.tsx +141 -0
- package/src/components/drawer/Drawer.css +188 -0
- package/src/components/drawer/Drawer.test.tsx +152 -0
- package/src/components/drawer/Drawer.tsx +121 -0
- package/src/components/edge-swipe-back/EdgeSwipeBack.css +66 -0
- package/src/components/edge-swipe-back/EdgeSwipeBack.rtl.test.tsx +17 -0
- package/src/components/edge-swipe-back/EdgeSwipeBack.test.tsx +86 -0
- package/src/components/edge-swipe-back/EdgeSwipeBack.tsx +104 -0
- package/src/components/empty-state/EmptyState.css +70 -0
- package/src/components/empty-state/EmptyState.test.tsx +77 -0
- package/src/components/empty-state/EmptyState.tsx +105 -0
- package/src/components/environment-banner/EnvironmentBanner.css +46 -0
- package/src/components/environment-banner/EnvironmentBanner.rtl.test.tsx +13 -0
- package/src/components/environment-banner/EnvironmentBanner.test.tsx +51 -0
- package/src/components/environment-banner/EnvironmentBanner.tsx +75 -0
- package/src/components/error-state/ErrorState.css +113 -0
- package/src/components/error-state/ErrorState.test.tsx +98 -0
- package/src/components/error-state/ErrorState.tsx +145 -0
- package/src/components/evidence-panel/EvidencePanel.css +126 -0
- package/src/components/evidence-panel/EvidencePanel.test.tsx +130 -0
- package/src/components/evidence-panel/EvidencePanel.tsx +120 -0
- package/src/components/feature-showcase-card/FeatureShowcaseCard.css +136 -0
- package/src/components/feature-showcase-card/FeatureShowcaseCard.rtl.test.tsx +13 -0
- package/src/components/feature-showcase-card/FeatureShowcaseCard.test.tsx +91 -0
- package/src/components/feature-showcase-card/FeatureShowcaseCard.tsx +76 -0
- package/src/components/feature-tile/FeatureTile.css +111 -0
- package/src/components/feature-tile/FeatureTile.rtl.test.tsx +14 -0
- package/src/components/feature-tile/FeatureTile.test.tsx +78 -0
- package/src/components/feature-tile/FeatureTile.tsx +52 -0
- package/src/components/federated-sign-in/FederatedSignIn.css +23 -0
- package/src/components/federated-sign-in/FederatedSignIn.rtl.test.tsx +12 -0
- package/src/components/federated-sign-in/FederatedSignIn.test.tsx +74 -0
- package/src/components/federated-sign-in/FederatedSignIn.tsx +68 -0
- package/src/components/field/Field.css +99 -0
- package/src/components/field/Field.test.tsx +134 -0
- package/src/components/field/Field.tsx +228 -0
- package/src/components/filter-chips/FilterChips.css +145 -0
- package/src/components/filter-chips/FilterChips.test.tsx +121 -0
- package/src/components/filter-chips/FilterChips.tsx +134 -0
- package/src/components/filter-field/FilterField.css +11 -0
- package/src/components/filter-field/FilterField.test.tsx +92 -0
- package/src/components/filter-field/FilterField.tsx +43 -0
- package/src/components/filter-tile/FilterTile.css +145 -0
- package/src/components/filter-tile/FilterTile.test.tsx +69 -0
- package/src/components/filter-tile/FilterTile.tsx +87 -0
- package/src/components/flag-set-picker/FlagSetPicker.css +32 -0
- package/src/components/flag-set-picker/FlagSetPicker.test.tsx +75 -0
- package/src/components/flag-set-picker/FlagSetPicker.tsx +92 -0
- package/src/components/floating-action-bar/FloatingActionBar.css +375 -0
- package/src/components/floating-action-bar/FloatingActionBar.test.tsx +309 -0
- package/src/components/floating-action-bar/FloatingActionBar.tsx +655 -0
- package/src/components/floating-action-bar/barModel.ts +147 -0
- package/src/components/floating-action-button/FloatingActionButton.css +54 -0
- package/src/components/floating-action-button/FloatingActionButton.test.tsx +87 -0
- package/src/components/floating-action-button/FloatingActionButton.tsx +87 -0
- package/src/components/form-actions/FormActions.css +34 -0
- package/src/components/form-actions/FormActions.test.tsx +96 -0
- package/src/components/form-actions/FormActions.tsx +83 -0
- package/src/components/form-layout/FormLayout.css +148 -0
- package/src/components/form-layout/FormLayout.test.tsx +137 -0
- package/src/components/form-layout/FormLayout.tsx +177 -0
- package/src/components/glass-check-toggle/GlassCheckToggle.css +92 -0
- package/src/components/glass-check-toggle/GlassCheckToggle.rtl.test.tsx +12 -0
- package/src/components/glass-check-toggle/GlassCheckToggle.test.tsx +70 -0
- package/src/components/glass-check-toggle/GlassCheckToggle.tsx +75 -0
- package/src/components/gradient-mark/GradientMark.css +45 -0
- package/src/components/grouped-disclosure-list/GroupedDisclosureList.css +80 -0
- package/src/components/grouped-disclosure-list/GroupedDisclosureList.test.tsx +92 -0
- package/src/components/grouped-disclosure-list/GroupedDisclosureList.tsx +105 -0
- package/src/components/heading/Heading.css +67 -0
- package/src/components/heading/Heading.test.tsx +93 -0
- package/src/components/heading/Heading.tsx +60 -0
- package/src/components/highlight-stat/HighlightStat.css +50 -0
- package/src/components/highlight-stat/HighlightStat.rtl.test.tsx +13 -0
- package/src/components/highlight-stat/HighlightStat.test.tsx +83 -0
- package/src/components/highlight-stat/HighlightStat.tsx +66 -0
- package/src/components/history-list/HistoryList.css +116 -0
- package/src/components/history-list/HistoryList.test.tsx +88 -0
- package/src/components/history-list/HistoryList.tsx +115 -0
- package/src/components/http-error-page/HttpErrorPage.css +70 -0
- package/src/components/http-error-page/HttpErrorPage.rtl.test.tsx +12 -0
- package/src/components/http-error-page/HttpErrorPage.test.tsx +51 -0
- package/src/components/http-error-page/HttpErrorPage.tsx +70 -0
- package/src/components/image-picker/ImagePicker.css +151 -0
- package/src/components/image-picker/ImagePicker.test.tsx +133 -0
- package/src/components/image-picker/ImagePicker.tsx +167 -0
- package/src/components/inline-notice/InlineNotice.css +101 -0
- package/src/components/inline-notice/InlineNotice.test.tsx +123 -0
- package/src/components/inline-notice/InlineNotice.tsx +98 -0
- package/src/components/insight-card/InsightCard.css +109 -0
- package/src/components/insight-card/InsightCard.rtl.test.tsx +14 -0
- package/src/components/insight-card/InsightCard.test.tsx +102 -0
- package/src/components/insight-card/InsightCard.tsx +185 -0
- package/src/components/legal-document-frame/LegalDocumentFrame.css +163 -0
- package/src/components/legal-document-frame/LegalDocumentFrame.rtl.test.tsx +13 -0
- package/src/components/legal-document-frame/LegalDocumentFrame.test.tsx +123 -0
- package/src/components/legal-document-frame/LegalDocumentFrame.tsx +167 -0
- package/src/components/link/Link.css +76 -0
- package/src/components/link/Link.test.tsx +103 -0
- package/src/components/link/Link.tsx +87 -0
- package/src/components/list-panel/ListPanel.css +95 -0
- package/src/components/list-panel/ListPanel.test.tsx +128 -0
- package/src/components/list-panel/ListPanel.tsx +137 -0
- package/src/components/list-row/ListRow.css +81 -0
- package/src/components/list-row/ListRow.test.tsx +87 -0
- package/src/components/list-row/ListRow.tsx +68 -0
- package/src/components/listbox-select/ListboxSelect.css +263 -0
- package/src/components/listbox-select/ListboxSelect.test.tsx +157 -0
- package/src/components/listbox-select/ListboxSelect.tsx +178 -0
- package/src/components/live-report-view/LiveReportView.css +111 -0
- package/src/components/live-report-view/LiveReportView.rtl.test.tsx +14 -0
- package/src/components/live-report-view/LiveReportView.test.tsx +185 -0
- package/src/components/live-report-view/LiveReportView.tsx +135 -0
- package/src/components/live-report-view/runEvents.ts +103 -0
- package/src/components/live-report-view/useRunEventStream.ts +134 -0
- package/src/components/loader-presets/LoaderPresets.test.tsx +22 -0
- package/src/components/loader-presets/LoaderPresets.tsx +80 -0
- package/src/components/locale-picker/LocalePicker.css +91 -0
- package/src/components/locale-picker/LocalePicker.test.tsx +99 -0
- package/src/components/locale-picker/LocalePicker.tsx +128 -0
- package/src/components/long-press-menu/LongPressMenu.css +97 -0
- package/src/components/long-press-menu/LongPressMenu.test.tsx +106 -0
- package/src/components/long-press-menu/LongPressMenu.tsx +100 -0
- package/src/components/markdown-view/MarkdownView.css +93 -0
- package/src/components/markdown-view/MarkdownView.test.tsx +107 -0
- package/src/components/markdown-view/MarkdownView.tsx +96 -0
- package/src/components/markdown-view/parse.ts +152 -0
- package/src/components/metric-tile/MetricTile.css +104 -0
- package/src/components/metric-tile/MetricTile.rtl.test.tsx +12 -0
- package/src/components/metric-tile/MetricTile.test.tsx +70 -0
- package/src/components/metric-tile/MetricTile.tsx +59 -0
- package/src/components/modal-dialog/ModalDialog.css +165 -0
- package/src/components/modal-dialog/ModalDialog.test.tsx +158 -0
- package/src/components/modal-dialog/ModalDialog.tsx +112 -0
- package/src/components/month-field/MonthField.css +11 -0
- package/src/components/month-field/MonthField.test.tsx +101 -0
- package/src/components/month-field/MonthField.tsx +124 -0
- package/src/components/native-select/NativeSelect.css +246 -0
- package/src/components/native-select/NativeSelect.test.tsx +160 -0
- package/src/components/native-select/NativeSelect.tsx +234 -0
- package/src/components/navigation-flyout/NavigationFlyout.css +181 -0
- package/src/components/navigation-flyout/NavigationFlyout.test.tsx +111 -0
- package/src/components/navigation-flyout/NavigationFlyout.tsx +196 -0
- package/src/components/notification-center/NotificationCenter.css +187 -0
- package/src/components/notification-center/NotificationCenter.test.tsx +140 -0
- package/src/components/notification-center/NotificationCenter.tsx +229 -0
- package/src/components/one-time-code-field/OneTimeCodeField.css +62 -0
- package/src/components/one-time-code-field/OneTimeCodeField.test.tsx +150 -0
- package/src/components/one-time-code-field/OneTimeCodeField.tsx +176 -0
- package/src/components/page-dots/PageDots.css +90 -0
- package/src/components/page-dots/PageDots.test.tsx +87 -0
- package/src/components/page-dots/PageDots.tsx +95 -0
- package/src/components/page-header/PageHeader.css +271 -0
- package/src/components/page-header/PageHeader.test.tsx +185 -0
- package/src/components/page-header/PageHeader.tsx +194 -0
- package/src/components/pagination/Pagination.css +139 -0
- package/src/components/pagination/Pagination.test.tsx +104 -0
- package/src/components/pagination/Pagination.tsx +160 -0
- package/src/components/password-strength/PasswordStrength.css +85 -0
- package/src/components/password-strength/PasswordStrength.test.tsx +90 -0
- package/src/components/password-strength/PasswordStrength.tsx +109 -0
- package/src/components/phase-bar/PhaseBar.css +95 -0
- package/src/components/phase-bar/PhaseBar.test.tsx +67 -0
- package/src/components/phase-bar/PhaseBar.tsx +66 -0
- package/src/components/popover/Popover.css +130 -0
- package/src/components/popover/Popover.test.tsx +153 -0
- package/src/components/popover/Popover.tsx +110 -0
- package/src/components/product-mark/ProductMark.css +24 -0
- package/src/components/product-mark/ProductMark.test.tsx +48 -0
- package/src/components/product-mark/ProductMark.tsx +95 -0
- package/src/components/product-mark/marks.ts +115 -0
- package/src/components/product-mark/plate.ts +42 -0
- package/src/components/profile-avatar/ProfileAvatar.css +51 -0
- package/src/components/profile-avatar/ProfileAvatar.test.tsx +78 -0
- package/src/components/profile-avatar/ProfileAvatar.tsx +58 -0
- package/src/components/profile-summary/ProfileSummary.css +43 -0
- package/src/components/profile-summary/ProfileSummary.rtl.test.tsx +12 -0
- package/src/components/profile-summary/ProfileSummary.test.tsx +52 -0
- package/src/components/profile-summary/ProfileSummary.tsx +52 -0
- package/src/components/progress-bar/ProgressBar.css +100 -0
- package/src/components/progress-bar/ProgressBar.test.tsx +68 -0
- package/src/components/progress-bar/ProgressBar.tsx +76 -0
- package/src/components/proof-badge/ProofBadge.css +178 -0
- package/src/components/proof-badge/ProofBadge.test.tsx +95 -0
- package/src/components/proof-badge/ProofBadge.tsx +113 -0
- package/src/components/pull-to-refresh/PullToRefresh.css +99 -0
- package/src/components/pull-to-refresh/PullToRefresh.rtl.test.tsx +16 -0
- package/src/components/pull-to-refresh/PullToRefresh.test.tsx +117 -0
- package/src/components/pull-to-refresh/PullToRefresh.tsx +181 -0
- package/src/components/record-card/RecordCard.css +151 -0
- package/src/components/record-card/RecordCard.rtl.test.tsx +16 -0
- package/src/components/record-card/RecordCard.test.tsx +105 -0
- package/src/components/record-card/RecordCard.tsx +159 -0
- package/src/components/recovery-code-list/RecoveryCodeList.css +66 -0
- package/src/components/recovery-code-list/RecoveryCodeList.test.tsx +108 -0
- package/src/components/recovery-code-list/RecoveryCodeList.tsx +105 -0
- package/src/components/region-map/RegionMap.css +229 -0
- package/src/components/region-map/RegionMap.test.tsx +200 -0
- package/src/components/region-map/RegionMap.tsx +400 -0
- package/src/components/region-map/useRegionMapState.ts +92 -0
- package/src/components/region-theme/countryProfile.ts +110 -0
- package/src/components/region-theme/data/br-profile.ts +41 -0
- package/src/components/region-theme/data/br.ts +80 -0
- package/src/components/region-theme/format.ts +120 -0
- package/src/components/region-theme/geometry.ts +67 -0
- package/src/components/region-theme/index.ts +7 -0
- package/src/components/region-theme/regionTheme.test.tsx +200 -0
- package/src/components/region-theme/registry.ts +163 -0
- package/src/components/report-view/ReportView.css +323 -0
- package/src/components/report-view/ReportView.rtl.test.tsx +25 -0
- package/src/components/report-view/ReportView.test.tsx +141 -0
- package/src/components/report-view/ReportView.tsx +201 -0
- package/src/components/report-view/sections.tsx +281 -0
- package/src/components/report-view/types.ts +72 -0
- package/src/components/report-view/validateReport.ts +51 -0
- package/src/components/resizable-split/ResizableSplit.css +56 -0
- package/src/components/resizable-split/ResizableSplit.test.tsx +108 -0
- package/src/components/resizable-split/ResizableSplit.tsx +76 -0
- package/src/components/resizable-split/useSplitter.ts +72 -0
- package/src/components/reveal-number/RevealNumber.css +17 -0
- package/src/components/reveal-number/RevealNumber.rtl.test.tsx +13 -0
- package/src/components/reveal-number/RevealNumber.test.tsx +136 -0
- package/src/components/reveal-number/RevealNumber.tsx +115 -0
- package/src/components/route-progress/RouteProgress.css +54 -0
- package/src/components/route-progress/RouteProgress.rtl.test.tsx +16 -0
- package/src/components/route-progress/RouteProgress.test.tsx +62 -0
- package/src/components/route-progress/RouteProgress.tsx +63 -0
- package/src/components/ruled-grid/RuledGrid.css +86 -0
- package/src/components/ruled-grid/RuledGrid.rtl.test.tsx +13 -0
- package/src/components/ruled-grid/RuledGrid.test.tsx +92 -0
- package/src/components/ruled-grid/RuledGrid.tsx +73 -0
- package/src/components/safe-area-inset/SafeAreaInset.css +65 -0
- package/src/components/safe-area-inset/SafeAreaInset.rtl.test.tsx +17 -0
- package/src/components/safe-area-inset/SafeAreaInset.test.tsx +99 -0
- package/src/components/safe-area-inset/SafeAreaInset.tsx +101 -0
- package/src/components/schema-request-form/SchemaRequestForm.css +75 -0
- package/src/components/schema-request-form/SchemaRequestForm.test.tsx +138 -0
- package/src/components/schema-request-form/SchemaRequestForm.tsx +231 -0
- package/src/components/search-bar/SearchBar.css +117 -0
- package/src/components/search-bar/SearchBar.test.tsx +134 -0
- package/src/components/search-bar/SearchBar.tsx +176 -0
- package/src/components/section-heading/SectionHeading.css +68 -0
- package/src/components/section-heading/SectionHeading.test.tsx +65 -0
- package/src/components/section-heading/SectionHeading.tsx +61 -0
- package/src/components/section-panel/SectionPanel.css +207 -0
- package/src/components/section-panel/SectionPanel.test.tsx +122 -0
- package/src/components/section-panel/SectionPanel.tsx +139 -0
- package/src/components/sectioned-modal/SectionedModal.css +325 -0
- package/src/components/sectioned-modal/SectionedModal.test.tsx +138 -0
- package/src/components/sectioned-modal/SectionedModal.tsx +258 -0
- package/src/components/segmented-control/SegmentedControl.css +123 -0
- package/src/components/segmented-control/SegmentedControl.test.tsx +109 -0
- package/src/components/segmented-control/SegmentedControl.tsx +85 -0
- package/src/components/separator/Separator.css +61 -0
- package/src/components/separator/Separator.test.tsx +65 -0
- package/src/components/separator/Separator.tsx +46 -0
- package/src/components/settings-dialog/SettingsDialog.css +151 -0
- package/src/components/settings-dialog/SettingsDialog.test.tsx +155 -0
- package/src/components/settings-dialog/SettingsDialog.tsx +126 -0
- package/src/components/settings-dialog/settingsModel.ts +63 -0
- package/src/components/settings-dialog/settingsParts.tsx +149 -0
- package/src/components/showcase-backdrop/ShowcaseBackdrop.css +78 -0
- package/src/components/showcase-backdrop/ShowcaseBackdrop.rtl.test.tsx +12 -0
- package/src/components/showcase-backdrop/ShowcaseBackdrop.test.tsx +91 -0
- package/src/components/showcase-backdrop/ShowcaseBackdrop.tsx +47 -0
- package/src/components/showcase-heading/ShowcaseHeading.css +65 -0
- package/src/components/showcase-heading/ShowcaseHeading.rtl.test.tsx +13 -0
- package/src/components/showcase-heading/ShowcaseHeading.test.tsx +79 -0
- package/src/components/showcase-heading/ShowcaseHeading.tsx +67 -0
- package/src/components/skeleton/Skeleton.css +120 -0
- package/src/components/skeleton/Skeleton.test.tsx +96 -0
- package/src/components/skeleton/Skeleton.tsx +168 -0
- package/src/components/skeleton-fill/SkeletonFill.css +67 -0
- package/src/components/skeleton-fill/SkeletonFill.rtl.test.tsx +12 -0
- package/src/components/skeleton-fill/SkeletonFill.test.tsx +61 -0
- package/src/components/skeleton-fill/SkeletonFill.tsx +48 -0
- package/src/components/skip-link/SkipLink.css +52 -0
- package/src/components/skip-link/SkipLink.test.tsx +90 -0
- package/src/components/skip-link/SkipLink.tsx +42 -0
- package/src/components/spinner/Spinner.css +134 -0
- package/src/components/spinner/Spinner.test.tsx +99 -0
- package/src/components/spinner/Spinner.tsx +100 -0
- package/src/components/stage-strip/StageStrip.css +126 -0
- package/src/components/stage-strip/StageStrip.test.tsx +82 -0
- package/src/components/stage-strip/StageStrip.tsx +100 -0
- package/src/components/stat-strip/StatStrip.css +90 -0
- package/src/components/stat-strip/StatStrip.test.tsx +75 -0
- package/src/components/stat-strip/StatStrip.tsx +62 -0
- package/src/components/stat-tile/StatTile.css +171 -0
- package/src/components/stat-tile/StatTile.rtl.test.tsx +14 -0
- package/src/components/stat-tile/StatTile.test.tsx +90 -0
- package/src/components/stat-tile/StatTile.tsx +129 -0
- package/src/components/state-switch/StateSwitch.css +113 -0
- package/src/components/state-switch/StateSwitch.test.tsx +102 -0
- package/src/components/state-switch/StateSwitch.tsx +73 -0
- package/src/components/status-pill/StatusPill.css +85 -0
- package/src/components/status-pill/StatusPill.test.tsx +91 -0
- package/src/components/status-pill/StatusPill.tsx +73 -0
- package/src/components/step-list/StepList.css +181 -0
- package/src/components/step-list/StepList.test.tsx +93 -0
- package/src/components/step-list/StepList.tsx +118 -0
- package/src/components/summary-row/SummaryRow.css +85 -0
- package/src/components/summary-row/SummaryRow.test.tsx +77 -0
- package/src/components/summary-row/SummaryRow.tsx +72 -0
- package/src/components/surface/Surface.css +157 -0
- package/src/components/surface/Surface.test.tsx +97 -0
- package/src/components/surface/Surface.tsx +124 -0
- package/src/components/swipe-row/SwipeRow.css +131 -0
- package/src/components/swipe-row/SwipeRow.rtl.test.tsx +31 -0
- package/src/components/swipe-row/SwipeRow.test.tsx +124 -0
- package/src/components/swipe-row/SwipeRow.tsx +219 -0
- package/src/components/switch/Switch.css +182 -0
- package/src/components/switch/Switch.test.tsx +112 -0
- package/src/components/switch/Switch.tsx +125 -0
- package/src/components/tabs/Tabs.css +137 -0
- package/src/components/tabs/Tabs.test.tsx +127 -0
- package/src/components/tabs/Tabs.tsx +94 -0
- package/src/components/tag/Tag.css +146 -0
- package/src/components/tag/Tag.test.tsx +129 -0
- package/src/components/tag/Tag.tsx +168 -0
- package/src/components/tag-field/TagField.css +274 -0
- package/src/components/tag-field/TagField.test.tsx +156 -0
- package/src/components/tag-field/TagField.tsx +270 -0
- package/src/components/text/Text.css +84 -0
- package/src/components/text/Text.test.tsx +91 -0
- package/src/components/text/Text.tsx +84 -0
- package/src/components/text-area/TextArea.css +125 -0
- package/src/components/text-area/TextArea.test.tsx +97 -0
- package/src/components/text-area/TextArea.tsx +145 -0
- package/src/components/text-field/TextField.css +197 -0
- package/src/components/text-field/TextField.test.tsx +136 -0
- package/src/components/text-field/TextField.tsx +208 -0
- package/src/components/theme-palette/ThemePalette.css +262 -0
- package/src/components/theme-palette/ThemePalette.test.tsx +62 -0
- package/src/components/theme-palette/ThemePalette.tsx +377 -0
- package/src/components/theme-switcher/ThemeSwitcher.css +159 -0
- package/src/components/theme-switcher/ThemeSwitcher.test.tsx +71 -0
- package/src/components/theme-switcher/ThemeSwitcher.tsx +72 -0
- package/src/components/third-party-mark-slot/ThirdPartyMarkSlot.css +56 -0
- package/src/components/third-party-mark-slot/ThirdPartyMarkSlot.rtl.test.tsx +13 -0
- package/src/components/third-party-mark-slot/ThirdPartyMarkSlot.test.tsx +100 -0
- package/src/components/third-party-mark-slot/ThirdPartyMarkSlot.tsx +218 -0
- package/src/components/ticker-card/TickerCard.css +147 -0
- package/src/components/ticker-card/TickerCard.rtl.test.tsx +14 -0
- package/src/components/ticker-card/TickerCard.test.tsx +74 -0
- package/src/components/ticker-card/TickerCard.tsx +151 -0
- package/src/components/time-field/TimeField.css +69 -0
- package/src/components/time-field/TimeField.test.tsx +138 -0
- package/src/components/time-field/TimeField.tsx +205 -0
- package/src/components/toast/Toast.css +137 -0
- package/src/components/toast/Toast.test.tsx +269 -0
- package/src/components/toast/Toast.tsx +370 -0
- package/src/components/tone-tint/ToneTint.css +74 -0
- package/src/components/tone-tint/toneTint.test.tsx +74 -0
- package/src/components/tone-tint/toneTint.ts +57 -0
- package/src/components/toolbar-trigger/ToolbarTrigger.css +104 -0
- package/src/components/toolbar-trigger/ToolbarTrigger.test.tsx +75 -0
- package/src/components/toolbar-trigger/ToolbarTrigger.tsx +70 -0
- package/src/components/tooltip/Tooltip.css +70 -0
- package/src/components/tooltip/Tooltip.test.tsx +209 -0
- package/src/components/tooltip/Tooltip.tsx +102 -0
- package/src/components/tweened-number/TweenedNumber.css +7 -0
- package/src/components/tweened-number/TweenedNumber.rtl.test.tsx +19 -0
- package/src/components/tweened-number/TweenedNumber.test.tsx +97 -0
- package/src/components/tweened-number/TweenedNumber.tsx +70 -0
- package/src/components/upgrade-gate/UpgradeGate.css +94 -0
- package/src/components/upgrade-gate/UpgradeGate.rtl.test.tsx +12 -0
- package/src/components/upgrade-gate/UpgradeGate.test.tsx +56 -0
- package/src/components/upgrade-gate/UpgradeGate.tsx +56 -0
- package/src/components/wheel-picker/WheelPicker.css +149 -0
- package/src/components/wheel-picker/WheelPicker.test.tsx +150 -0
- package/src/components/wheel-picker/WheelPicker.tsx +228 -0
- package/src/components/wizard-page/WizardPage.css +114 -0
- package/src/components/wizard-page/WizardPage.test.tsx +117 -0
- package/src/components/wizard-page/WizardPage.tsx +123 -0
- package/src/elements/action-menu/definition.ts +123 -0
- package/src/elements/action-menu/element.ts +604 -0
- package/src/elements/anatomy.ts +55 -0
- package/src/elements/avatar/definition.ts +161 -0
- package/src/elements/avatar/element.ts +112 -0
- package/src/elements/base.ts +244 -0
- package/src/elements/brand-wordmark/definition.ts +37 -0
- package/src/elements/brand-wordmark/element.ts +13 -0
- package/src/elements/breadcrumbs/definition.ts +85 -0
- package/src/elements/breadcrumbs/element.ts +231 -0
- package/src/elements/button/definition.ts +74 -0
- package/src/elements/button/element.ts +25 -0
- package/src/elements/checkbox/definition.ts +132 -0
- package/src/elements/checkbox/element.ts +59 -0
- package/src/elements/command-palette/definition.ts +60 -0
- package/src/elements/command-palette/element.ts +706 -0
- package/src/elements/currency-field/definition.ts +159 -0
- package/src/elements/currency-field/element.ts +265 -0
- package/src/elements/data-table/definition.ts +54 -0
- package/src/elements/data-table/element.ts +440 -0
- package/src/elements/definition.ts +196 -0
- package/src/elements/drawer/definition.ts +156 -0
- package/src/elements/drawer/element.ts +304 -0
- package/src/elements/elements.css +156 -0
- package/src/elements/gradient-mark/definition.ts +41 -0
- package/src/elements/gradient-mark/element.ts +27 -0
- package/src/elements/heading/definition.ts +64 -0
- package/src/elements/heading/element.ts +14 -0
- package/src/elements/index.ts +146 -0
- package/src/elements/inline-notice/definition.ts +167 -0
- package/src/elements/inline-notice/element.ts +36 -0
- package/src/elements/link/definition.ts +70 -0
- package/src/elements/link/element.ts +40 -0
- package/src/elements/markdown-view/definition.ts +35 -0
- package/src/elements/markdown-view/element.ts +183 -0
- package/src/elements/modal/definition.ts +175 -0
- package/src/elements/modal/element.ts +226 -0
- package/src/elements/native-select/definition.ts +143 -0
- package/src/elements/native-select/element.ts +34 -0
- package/src/elements/notification-center/definition.ts +236 -0
- package/src/elements/notification-center/element.ts +527 -0
- package/src/elements/page-header/definition.ts +151 -0
- package/src/elements/page-header/element.ts +37 -0
- package/src/elements/popover/definition.ts +137 -0
- package/src/elements/popover/element.ts +196 -0
- package/src/elements/popover/model.ts +141 -0
- package/src/elements/progress-bar/definition.ts +84 -0
- package/src/elements/progress-bar/element.ts +82 -0
- package/src/elements/react/TyActionMenu.ts +79 -0
- package/src/elements/react/TyAvatar.ts +129 -0
- package/src/elements/react/TyBrandWordmark.ts +51 -0
- package/src/elements/react/TyBreadcrumbs.ts +82 -0
- package/src/elements/react/TyButton.ts +98 -0
- package/src/elements/react/TyCheckbox.ts +92 -0
- package/src/elements/react/TyCommandPalette.ts +120 -0
- package/src/elements/react/TyCurrencyField.ts +126 -0
- package/src/elements/react/TyDataTable.ts +105 -0
- package/src/elements/react/TyDrawer.ts +99 -0
- package/src/elements/react/TyGradientMark.ts +52 -0
- package/src/elements/react/TyHeading.ts +65 -0
- package/src/elements/react/TyInlineNotice.ts +191 -0
- package/src/elements/react/TyLink.ts +65 -0
- package/src/elements/react/TyMarkdownView.ts +46 -0
- package/src/elements/react/TyModal.ts +118 -0
- package/src/elements/react/TyNativeSelect.ts +96 -0
- package/src/elements/react/TyNotificationCenter.ts +153 -0
- package/src/elements/react/TyPageHeader.ts +126 -0
- package/src/elements/react/TyPopover.ts +95 -0
- package/src/elements/react/TyProgressBar.ts +72 -0
- package/src/elements/react/TySectionHeading.ts +78 -0
- package/src/elements/react/TySegmentedControl.ts +64 -0
- package/src/elements/react/TySeparator.ts +51 -0
- package/src/elements/react/TySkeleton.ts +61 -0
- package/src/elements/react/TySkipLink.ts +39 -0
- package/src/elements/react/TySpinner.ts +55 -0
- package/src/elements/react/TyStatusPill.ts +66 -0
- package/src/elements/react/TySurface.ts +104 -0
- package/src/elements/react/TySwitch.ts +77 -0
- package/src/elements/react/TyTabs.ts +66 -0
- package/src/elements/react/TyTag.ts +71 -0
- package/src/elements/react/TyTagField.ts +90 -0
- package/src/elements/react/TyTextArea.ts +124 -0
- package/src/elements/react/TyTextField.ts +186 -0
- package/src/elements/react/TyThemePalette.ts +126 -0
- package/src/elements/react/TyToast.ts +57 -0
- package/src/elements/react/TyWheelPicker.ts +60 -0
- package/src/elements/react/index.ts +39 -0
- package/src/elements/register.ts +7 -0
- package/src/elements/section-heading/definition.ts +81 -0
- package/src/elements/section-heading/element.ts +15 -0
- package/src/elements/segmented-control/definition.ts +72 -0
- package/src/elements/segmented-control/element.ts +253 -0
- package/src/elements/separator/definition.ts +44 -0
- package/src/elements/separator/element.ts +13 -0
- package/src/elements/skeleton/definition.ts +91 -0
- package/src/elements/skeleton/element.ts +175 -0
- package/src/elements/skip-link/definition.ts +26 -0
- package/src/elements/skip-link/element.ts +75 -0
- package/src/elements/spinner/definition.ts +52 -0
- package/src/elements/spinner/element.ts +58 -0
- package/src/elements/status-pill/definition.ts +48 -0
- package/src/elements/status-pill/element.ts +50 -0
- package/src/elements/surface/definition.ts +93 -0
- package/src/elements/surface/element.ts +42 -0
- package/src/elements/switch/definition.ts +72 -0
- package/src/elements/switch/element.ts +65 -0
- package/src/elements/tabs/definition.ts +60 -0
- package/src/elements/tabs/element.ts +319 -0
- package/src/elements/tag/definition.ts +69 -0
- package/src/elements/tag/element.ts +35 -0
- package/src/elements/tag-field/definition.ts +51 -0
- package/src/elements/tag-field/element.ts +461 -0
- package/src/elements/text-area/definition.ts +137 -0
- package/src/elements/text-area/element.ts +113 -0
- package/src/elements/text-field/definition.ts +236 -0
- package/src/elements/text-field/element.ts +151 -0
- package/src/elements/theme-palette/definition.ts +52 -0
- package/src/elements/theme-palette/element.ts +372 -0
- package/src/elements/theme-palette/model.ts +140 -0
- package/src/elements/toast/definition.ts +42 -0
- package/src/elements/toast/element.ts +479 -0
- package/src/elements/wheel-picker/definition.ts +39 -0
- package/src/elements/wheel-picker/element.ts +407 -0
- package/src/flags/Flag.css +58 -0
- package/src/flags/Flag.tsx +70 -0
- package/src/flags/art/1x1/ad.ts +2 -0
- package/src/flags/art/1x1/ae.ts +2 -0
- package/src/flags/art/1x1/af.ts +2 -0
- package/src/flags/art/1x1/ag.ts +2 -0
- package/src/flags/art/1x1/ai.ts +2 -0
- package/src/flags/art/1x1/al.ts +2 -0
- package/src/flags/art/1x1/am.ts +2 -0
- package/src/flags/art/1x1/ao.ts +2 -0
- package/src/flags/art/1x1/aq.ts +2 -0
- package/src/flags/art/1x1/ar.ts +2 -0
- package/src/flags/art/1x1/arab.ts +2 -0
- package/src/flags/art/1x1/as.ts +2 -0
- package/src/flags/art/1x1/asean.ts +2 -0
- package/src/flags/art/1x1/at.ts +2 -0
- package/src/flags/art/1x1/au.ts +2 -0
- package/src/flags/art/1x1/aw.ts +2 -0
- package/src/flags/art/1x1/ax.ts +2 -0
- package/src/flags/art/1x1/az.ts +2 -0
- package/src/flags/art/1x1/ba.ts +2 -0
- package/src/flags/art/1x1/bb.ts +2 -0
- package/src/flags/art/1x1/bd.ts +2 -0
- package/src/flags/art/1x1/be.ts +2 -0
- package/src/flags/art/1x1/bf.ts +2 -0
- package/src/flags/art/1x1/bg.ts +2 -0
- package/src/flags/art/1x1/bh.ts +2 -0
- package/src/flags/art/1x1/bi.ts +2 -0
- package/src/flags/art/1x1/bj.ts +2 -0
- package/src/flags/art/1x1/bl.ts +2 -0
- package/src/flags/art/1x1/bm.ts +2 -0
- package/src/flags/art/1x1/bn.ts +2 -0
- package/src/flags/art/1x1/bo.ts +2 -0
- package/src/flags/art/1x1/bq.ts +2 -0
- package/src/flags/art/1x1/br.ts +2 -0
- package/src/flags/art/1x1/bs.ts +2 -0
- package/src/flags/art/1x1/bt.ts +2 -0
- package/src/flags/art/1x1/bv.ts +2 -0
- package/src/flags/art/1x1/bw.ts +2 -0
- package/src/flags/art/1x1/by.ts +2 -0
- package/src/flags/art/1x1/bz.ts +2 -0
- package/src/flags/art/1x1/ca.ts +2 -0
- package/src/flags/art/1x1/cc.ts +2 -0
- package/src/flags/art/1x1/cd.ts +2 -0
- package/src/flags/art/1x1/cefta.ts +2 -0
- package/src/flags/art/1x1/cf.ts +2 -0
- package/src/flags/art/1x1/cg.ts +2 -0
- package/src/flags/art/1x1/ch.ts +2 -0
- package/src/flags/art/1x1/ci.ts +2 -0
- package/src/flags/art/1x1/ck.ts +2 -0
- package/src/flags/art/1x1/cl.ts +2 -0
- package/src/flags/art/1x1/cm.ts +2 -0
- package/src/flags/art/1x1/cn.ts +2 -0
- package/src/flags/art/1x1/co.ts +2 -0
- package/src/flags/art/1x1/cp.ts +2 -0
- package/src/flags/art/1x1/cr.ts +2 -0
- package/src/flags/art/1x1/cu.ts +2 -0
- package/src/flags/art/1x1/cv.ts +2 -0
- package/src/flags/art/1x1/cw.ts +2 -0
- package/src/flags/art/1x1/cx.ts +2 -0
- package/src/flags/art/1x1/cy.ts +2 -0
- package/src/flags/art/1x1/cz.ts +2 -0
- package/src/flags/art/1x1/de.ts +2 -0
- package/src/flags/art/1x1/dg.ts +2 -0
- package/src/flags/art/1x1/dj.ts +2 -0
- package/src/flags/art/1x1/dk.ts +2 -0
- package/src/flags/art/1x1/dm.ts +2 -0
- package/src/flags/art/1x1/do.ts +2 -0
- package/src/flags/art/1x1/dz.ts +2 -0
- package/src/flags/art/1x1/eac.ts +2 -0
- package/src/flags/art/1x1/ec.ts +2 -0
- package/src/flags/art/1x1/ee.ts +2 -0
- package/src/flags/art/1x1/eg.ts +2 -0
- package/src/flags/art/1x1/eh.ts +2 -0
- package/src/flags/art/1x1/er.ts +2 -0
- package/src/flags/art/1x1/es-ct.ts +2 -0
- package/src/flags/art/1x1/es-ga.ts +2 -0
- package/src/flags/art/1x1/es-pv.ts +2 -0
- package/src/flags/art/1x1/es.ts +2 -0
- package/src/flags/art/1x1/et.ts +2 -0
- package/src/flags/art/1x1/eu.ts +2 -0
- package/src/flags/art/1x1/fi.ts +2 -0
- package/src/flags/art/1x1/fj.ts +2 -0
- package/src/flags/art/1x1/fk.ts +2 -0
- package/src/flags/art/1x1/fm.ts +2 -0
- package/src/flags/art/1x1/fo.ts +2 -0
- package/src/flags/art/1x1/fr.ts +2 -0
- package/src/flags/art/1x1/ga.ts +2 -0
- package/src/flags/art/1x1/gb-eng.ts +2 -0
- package/src/flags/art/1x1/gb-nir.ts +2 -0
- package/src/flags/art/1x1/gb-sct.ts +2 -0
- package/src/flags/art/1x1/gb-wls.ts +2 -0
- package/src/flags/art/1x1/gb.ts +2 -0
- package/src/flags/art/1x1/gd.ts +2 -0
- package/src/flags/art/1x1/ge.ts +2 -0
- package/src/flags/art/1x1/gf.ts +2 -0
- package/src/flags/art/1x1/gg.ts +2 -0
- package/src/flags/art/1x1/gh.ts +2 -0
- package/src/flags/art/1x1/gi.ts +2 -0
- package/src/flags/art/1x1/gl.ts +2 -0
- package/src/flags/art/1x1/gm.ts +2 -0
- package/src/flags/art/1x1/gn.ts +2 -0
- package/src/flags/art/1x1/gp.ts +2 -0
- package/src/flags/art/1x1/gq.ts +2 -0
- package/src/flags/art/1x1/gr.ts +2 -0
- package/src/flags/art/1x1/gs.ts +2 -0
- package/src/flags/art/1x1/gt.ts +2 -0
- package/src/flags/art/1x1/gu.ts +2 -0
- package/src/flags/art/1x1/gw.ts +2 -0
- package/src/flags/art/1x1/gy.ts +2 -0
- package/src/flags/art/1x1/hk.ts +2 -0
- package/src/flags/art/1x1/hm.ts +2 -0
- package/src/flags/art/1x1/hn.ts +2 -0
- package/src/flags/art/1x1/hr.ts +2 -0
- package/src/flags/art/1x1/ht.ts +2 -0
- package/src/flags/art/1x1/hu.ts +2 -0
- package/src/flags/art/1x1/ic.ts +2 -0
- package/src/flags/art/1x1/id.ts +2 -0
- package/src/flags/art/1x1/ie.ts +2 -0
- package/src/flags/art/1x1/il.ts +2 -0
- package/src/flags/art/1x1/im.ts +2 -0
- package/src/flags/art/1x1/in.ts +2 -0
- package/src/flags/art/1x1/io.ts +2 -0
- package/src/flags/art/1x1/iq.ts +2 -0
- package/src/flags/art/1x1/ir.ts +2 -0
- package/src/flags/art/1x1/is.ts +2 -0
- package/src/flags/art/1x1/it.ts +2 -0
- package/src/flags/art/1x1/je.ts +2 -0
- package/src/flags/art/1x1/jm.ts +2 -0
- package/src/flags/art/1x1/jo.ts +2 -0
- package/src/flags/art/1x1/jp.ts +2 -0
- package/src/flags/art/1x1/ke.ts +2 -0
- package/src/flags/art/1x1/kg.ts +2 -0
- package/src/flags/art/1x1/kh.ts +2 -0
- package/src/flags/art/1x1/ki.ts +2 -0
- package/src/flags/art/1x1/km.ts +2 -0
- package/src/flags/art/1x1/kn.ts +2 -0
- package/src/flags/art/1x1/kp.ts +2 -0
- package/src/flags/art/1x1/kr.ts +2 -0
- package/src/flags/art/1x1/kw.ts +2 -0
- package/src/flags/art/1x1/ky.ts +2 -0
- package/src/flags/art/1x1/kz.ts +2 -0
- package/src/flags/art/1x1/la.ts +2 -0
- package/src/flags/art/1x1/lb.ts +2 -0
- package/src/flags/art/1x1/lc.ts +2 -0
- package/src/flags/art/1x1/li.ts +2 -0
- package/src/flags/art/1x1/lk.ts +2 -0
- package/src/flags/art/1x1/lr.ts +2 -0
- package/src/flags/art/1x1/ls.ts +2 -0
- package/src/flags/art/1x1/lt.ts +2 -0
- package/src/flags/art/1x1/lu.ts +2 -0
- package/src/flags/art/1x1/lv.ts +2 -0
- package/src/flags/art/1x1/ly.ts +2 -0
- package/src/flags/art/1x1/ma.ts +2 -0
- package/src/flags/art/1x1/mc.ts +2 -0
- package/src/flags/art/1x1/md.ts +2 -0
- package/src/flags/art/1x1/me.ts +2 -0
- package/src/flags/art/1x1/mf.ts +2 -0
- package/src/flags/art/1x1/mg.ts +2 -0
- package/src/flags/art/1x1/mh.ts +2 -0
- package/src/flags/art/1x1/mk.ts +2 -0
- package/src/flags/art/1x1/ml.ts +2 -0
- package/src/flags/art/1x1/mm.ts +2 -0
- package/src/flags/art/1x1/mn.ts +2 -0
- package/src/flags/art/1x1/mo.ts +2 -0
- package/src/flags/art/1x1/mp.ts +2 -0
- package/src/flags/art/1x1/mq.ts +2 -0
- package/src/flags/art/1x1/mr.ts +2 -0
- package/src/flags/art/1x1/ms.ts +2 -0
- package/src/flags/art/1x1/mt.ts +2 -0
- package/src/flags/art/1x1/mu.ts +2 -0
- package/src/flags/art/1x1/mv.ts +2 -0
- package/src/flags/art/1x1/mw.ts +2 -0
- package/src/flags/art/1x1/mx.ts +2 -0
- package/src/flags/art/1x1/my.ts +2 -0
- package/src/flags/art/1x1/mz.ts +2 -0
- package/src/flags/art/1x1/na.ts +2 -0
- package/src/flags/art/1x1/nc.ts +2 -0
- package/src/flags/art/1x1/ne.ts +2 -0
- package/src/flags/art/1x1/nf.ts +2 -0
- package/src/flags/art/1x1/ng.ts +2 -0
- package/src/flags/art/1x1/ni.ts +2 -0
- package/src/flags/art/1x1/nl.ts +2 -0
- package/src/flags/art/1x1/no.ts +2 -0
- package/src/flags/art/1x1/np.ts +2 -0
- package/src/flags/art/1x1/nr.ts +2 -0
- package/src/flags/art/1x1/nu.ts +2 -0
- package/src/flags/art/1x1/nz.ts +2 -0
- package/src/flags/art/1x1/om.ts +2 -0
- package/src/flags/art/1x1/pa.ts +2 -0
- package/src/flags/art/1x1/pc.ts +2 -0
- package/src/flags/art/1x1/pe.ts +2 -0
- package/src/flags/art/1x1/pf.ts +2 -0
- package/src/flags/art/1x1/pg.ts +2 -0
- package/src/flags/art/1x1/ph.ts +2 -0
- package/src/flags/art/1x1/pk.ts +2 -0
- package/src/flags/art/1x1/pl.ts +2 -0
- package/src/flags/art/1x1/pm.ts +2 -0
- package/src/flags/art/1x1/pn.ts +2 -0
- package/src/flags/art/1x1/pr.ts +2 -0
- package/src/flags/art/1x1/ps.ts +2 -0
- package/src/flags/art/1x1/pt.ts +2 -0
- package/src/flags/art/1x1/pw.ts +2 -0
- package/src/flags/art/1x1/py.ts +2 -0
- package/src/flags/art/1x1/qa.ts +2 -0
- package/src/flags/art/1x1/re.ts +2 -0
- package/src/flags/art/1x1/ro.ts +2 -0
- package/src/flags/art/1x1/rs.ts +2 -0
- package/src/flags/art/1x1/ru.ts +2 -0
- package/src/flags/art/1x1/rw.ts +2 -0
- package/src/flags/art/1x1/sa.ts +2 -0
- package/src/flags/art/1x1/sb.ts +2 -0
- package/src/flags/art/1x1/sc.ts +2 -0
- package/src/flags/art/1x1/sd.ts +2 -0
- package/src/flags/art/1x1/se.ts +2 -0
- package/src/flags/art/1x1/sg.ts +2 -0
- package/src/flags/art/1x1/sh-ac.ts +2 -0
- package/src/flags/art/1x1/sh-hl.ts +2 -0
- package/src/flags/art/1x1/sh-ta.ts +2 -0
- package/src/flags/art/1x1/sh.ts +2 -0
- package/src/flags/art/1x1/si.ts +2 -0
- package/src/flags/art/1x1/sj.ts +2 -0
- package/src/flags/art/1x1/sk.ts +2 -0
- package/src/flags/art/1x1/sl.ts +2 -0
- package/src/flags/art/1x1/sm.ts +2 -0
- package/src/flags/art/1x1/sn.ts +2 -0
- package/src/flags/art/1x1/so.ts +2 -0
- package/src/flags/art/1x1/sr.ts +2 -0
- package/src/flags/art/1x1/ss.ts +2 -0
- package/src/flags/art/1x1/st.ts +2 -0
- package/src/flags/art/1x1/sv.ts +2 -0
- package/src/flags/art/1x1/sx.ts +2 -0
- package/src/flags/art/1x1/sy.ts +2 -0
- package/src/flags/art/1x1/sz.ts +2 -0
- package/src/flags/art/1x1/tc.ts +2 -0
- package/src/flags/art/1x1/td.ts +2 -0
- package/src/flags/art/1x1/tf.ts +2 -0
- package/src/flags/art/1x1/tg.ts +2 -0
- package/src/flags/art/1x1/th.ts +2 -0
- package/src/flags/art/1x1/tj.ts +2 -0
- package/src/flags/art/1x1/tk.ts +2 -0
- package/src/flags/art/1x1/tl.ts +2 -0
- package/src/flags/art/1x1/tm.ts +2 -0
- package/src/flags/art/1x1/tn.ts +2 -0
- package/src/flags/art/1x1/to.ts +2 -0
- package/src/flags/art/1x1/tr.ts +2 -0
- package/src/flags/art/1x1/tt.ts +2 -0
- package/src/flags/art/1x1/tv.ts +2 -0
- package/src/flags/art/1x1/tw.ts +2 -0
- package/src/flags/art/1x1/tz.ts +2 -0
- package/src/flags/art/1x1/ua.ts +2 -0
- package/src/flags/art/1x1/ug.ts +2 -0
- package/src/flags/art/1x1/um.ts +2 -0
- package/src/flags/art/1x1/un.ts +2 -0
- package/src/flags/art/1x1/us.ts +2 -0
- package/src/flags/art/1x1/uy.ts +2 -0
- package/src/flags/art/1x1/uz.ts +2 -0
- package/src/flags/art/1x1/va.ts +2 -0
- package/src/flags/art/1x1/vc.ts +2 -0
- package/src/flags/art/1x1/ve.ts +2 -0
- package/src/flags/art/1x1/vg.ts +2 -0
- package/src/flags/art/1x1/vi.ts +2 -0
- package/src/flags/art/1x1/vn.ts +2 -0
- package/src/flags/art/1x1/vu.ts +2 -0
- package/src/flags/art/1x1/wf.ts +2 -0
- package/src/flags/art/1x1/ws.ts +2 -0
- package/src/flags/art/1x1/xk.ts +2 -0
- package/src/flags/art/1x1/xx.ts +2 -0
- package/src/flags/art/1x1/ye.ts +2 -0
- package/src/flags/art/1x1/yt.ts +2 -0
- package/src/flags/art/1x1/za.ts +2 -0
- package/src/flags/art/1x1/zm.ts +2 -0
- package/src/flags/art/1x1/zw.ts +2 -0
- package/src/flags/art/4x3/ad.ts +2 -0
- package/src/flags/art/4x3/ae.ts +2 -0
- package/src/flags/art/4x3/af.ts +2 -0
- package/src/flags/art/4x3/ag.ts +2 -0
- package/src/flags/art/4x3/ai.ts +2 -0
- package/src/flags/art/4x3/al.ts +2 -0
- package/src/flags/art/4x3/am.ts +2 -0
- package/src/flags/art/4x3/ao.ts +2 -0
- package/src/flags/art/4x3/aq.ts +2 -0
- package/src/flags/art/4x3/ar.ts +2 -0
- package/src/flags/art/4x3/arab.ts +2 -0
- package/src/flags/art/4x3/as.ts +2 -0
- package/src/flags/art/4x3/asean.ts +2 -0
- package/src/flags/art/4x3/at.ts +2 -0
- package/src/flags/art/4x3/au.ts +2 -0
- package/src/flags/art/4x3/aw.ts +2 -0
- package/src/flags/art/4x3/ax.ts +2 -0
- package/src/flags/art/4x3/az.ts +2 -0
- package/src/flags/art/4x3/ba.ts +2 -0
- package/src/flags/art/4x3/bb.ts +2 -0
- package/src/flags/art/4x3/bd.ts +2 -0
- package/src/flags/art/4x3/be.ts +2 -0
- package/src/flags/art/4x3/bf.ts +2 -0
- package/src/flags/art/4x3/bg.ts +2 -0
- package/src/flags/art/4x3/bh.ts +2 -0
- package/src/flags/art/4x3/bi.ts +2 -0
- package/src/flags/art/4x3/bj.ts +2 -0
- package/src/flags/art/4x3/bl.ts +2 -0
- package/src/flags/art/4x3/bm.ts +2 -0
- package/src/flags/art/4x3/bn.ts +2 -0
- package/src/flags/art/4x3/bo.ts +2 -0
- package/src/flags/art/4x3/bq.ts +2 -0
- package/src/flags/art/4x3/br.ts +2 -0
- package/src/flags/art/4x3/bs.ts +2 -0
- package/src/flags/art/4x3/bt.ts +2 -0
- package/src/flags/art/4x3/bv.ts +2 -0
- package/src/flags/art/4x3/bw.ts +2 -0
- package/src/flags/art/4x3/by.ts +2 -0
- package/src/flags/art/4x3/bz.ts +2 -0
- package/src/flags/art/4x3/ca.ts +2 -0
- package/src/flags/art/4x3/cc.ts +2 -0
- package/src/flags/art/4x3/cd.ts +2 -0
- package/src/flags/art/4x3/cefta.ts +2 -0
- package/src/flags/art/4x3/cf.ts +2 -0
- package/src/flags/art/4x3/cg.ts +2 -0
- package/src/flags/art/4x3/ch.ts +2 -0
- package/src/flags/art/4x3/ci.ts +2 -0
- package/src/flags/art/4x3/ck.ts +2 -0
- package/src/flags/art/4x3/cl.ts +2 -0
- package/src/flags/art/4x3/cm.ts +2 -0
- package/src/flags/art/4x3/cn.ts +2 -0
- package/src/flags/art/4x3/co.ts +2 -0
- package/src/flags/art/4x3/cp.ts +2 -0
- package/src/flags/art/4x3/cr.ts +2 -0
- package/src/flags/art/4x3/cu.ts +2 -0
- package/src/flags/art/4x3/cv.ts +2 -0
- package/src/flags/art/4x3/cw.ts +2 -0
- package/src/flags/art/4x3/cx.ts +2 -0
- package/src/flags/art/4x3/cy.ts +2 -0
- package/src/flags/art/4x3/cz.ts +2 -0
- package/src/flags/art/4x3/de.ts +2 -0
- package/src/flags/art/4x3/dg.ts +2 -0
- package/src/flags/art/4x3/dj.ts +2 -0
- package/src/flags/art/4x3/dk.ts +2 -0
- package/src/flags/art/4x3/dm.ts +2 -0
- package/src/flags/art/4x3/do.ts +2 -0
- package/src/flags/art/4x3/dz.ts +2 -0
- package/src/flags/art/4x3/eac.ts +2 -0
- package/src/flags/art/4x3/ec.ts +2 -0
- package/src/flags/art/4x3/ee.ts +2 -0
- package/src/flags/art/4x3/eg.ts +2 -0
- package/src/flags/art/4x3/eh.ts +2 -0
- package/src/flags/art/4x3/er.ts +2 -0
- package/src/flags/art/4x3/es-ct.ts +2 -0
- package/src/flags/art/4x3/es-ga.ts +2 -0
- package/src/flags/art/4x3/es-pv.ts +2 -0
- package/src/flags/art/4x3/es.ts +2 -0
- package/src/flags/art/4x3/et.ts +2 -0
- package/src/flags/art/4x3/eu.ts +2 -0
- package/src/flags/art/4x3/fi.ts +2 -0
- package/src/flags/art/4x3/fj.ts +2 -0
- package/src/flags/art/4x3/fk.ts +2 -0
- package/src/flags/art/4x3/fm.ts +2 -0
- package/src/flags/art/4x3/fo.ts +2 -0
- package/src/flags/art/4x3/fr.ts +2 -0
- package/src/flags/art/4x3/ga.ts +2 -0
- package/src/flags/art/4x3/gb-eng.ts +2 -0
- package/src/flags/art/4x3/gb-nir.ts +2 -0
- package/src/flags/art/4x3/gb-sct.ts +2 -0
- package/src/flags/art/4x3/gb-wls.ts +2 -0
- package/src/flags/art/4x3/gb.ts +2 -0
- package/src/flags/art/4x3/gd.ts +2 -0
- package/src/flags/art/4x3/ge.ts +2 -0
- package/src/flags/art/4x3/gf.ts +2 -0
- package/src/flags/art/4x3/gg.ts +2 -0
- package/src/flags/art/4x3/gh.ts +2 -0
- package/src/flags/art/4x3/gi.ts +2 -0
- package/src/flags/art/4x3/gl.ts +2 -0
- package/src/flags/art/4x3/gm.ts +2 -0
- package/src/flags/art/4x3/gn.ts +2 -0
- package/src/flags/art/4x3/gp.ts +2 -0
- package/src/flags/art/4x3/gq.ts +2 -0
- package/src/flags/art/4x3/gr.ts +2 -0
- package/src/flags/art/4x3/gs.ts +2 -0
- package/src/flags/art/4x3/gt.ts +2 -0
- package/src/flags/art/4x3/gu.ts +2 -0
- package/src/flags/art/4x3/gw.ts +2 -0
- package/src/flags/art/4x3/gy.ts +2 -0
- package/src/flags/art/4x3/hk.ts +2 -0
- package/src/flags/art/4x3/hm.ts +2 -0
- package/src/flags/art/4x3/hn.ts +2 -0
- package/src/flags/art/4x3/hr.ts +2 -0
- package/src/flags/art/4x3/ht.ts +2 -0
- package/src/flags/art/4x3/hu.ts +2 -0
- package/src/flags/art/4x3/ic.ts +2 -0
- package/src/flags/art/4x3/id.ts +2 -0
- package/src/flags/art/4x3/ie.ts +2 -0
- package/src/flags/art/4x3/il.ts +2 -0
- package/src/flags/art/4x3/im.ts +2 -0
- package/src/flags/art/4x3/in.ts +2 -0
- package/src/flags/art/4x3/io.ts +2 -0
- package/src/flags/art/4x3/iq.ts +2 -0
- package/src/flags/art/4x3/ir.ts +2 -0
- package/src/flags/art/4x3/is.ts +2 -0
- package/src/flags/art/4x3/it.ts +2 -0
- package/src/flags/art/4x3/je.ts +2 -0
- package/src/flags/art/4x3/jm.ts +2 -0
- package/src/flags/art/4x3/jo.ts +2 -0
- package/src/flags/art/4x3/jp.ts +2 -0
- package/src/flags/art/4x3/ke.ts +2 -0
- package/src/flags/art/4x3/kg.ts +2 -0
- package/src/flags/art/4x3/kh.ts +2 -0
- package/src/flags/art/4x3/ki.ts +2 -0
- package/src/flags/art/4x3/km.ts +2 -0
- package/src/flags/art/4x3/kn.ts +2 -0
- package/src/flags/art/4x3/kp.ts +2 -0
- package/src/flags/art/4x3/kr.ts +2 -0
- package/src/flags/art/4x3/kw.ts +2 -0
- package/src/flags/art/4x3/ky.ts +2 -0
- package/src/flags/art/4x3/kz.ts +2 -0
- package/src/flags/art/4x3/la.ts +2 -0
- package/src/flags/art/4x3/lb.ts +2 -0
- package/src/flags/art/4x3/lc.ts +2 -0
- package/src/flags/art/4x3/li.ts +2 -0
- package/src/flags/art/4x3/lk.ts +2 -0
- package/src/flags/art/4x3/lr.ts +2 -0
- package/src/flags/art/4x3/ls.ts +2 -0
- package/src/flags/art/4x3/lt.ts +2 -0
- package/src/flags/art/4x3/lu.ts +2 -0
- package/src/flags/art/4x3/lv.ts +2 -0
- package/src/flags/art/4x3/ly.ts +2 -0
- package/src/flags/art/4x3/ma.ts +2 -0
- package/src/flags/art/4x3/mc.ts +2 -0
- package/src/flags/art/4x3/md.ts +2 -0
- package/src/flags/art/4x3/me.ts +2 -0
- package/src/flags/art/4x3/mf.ts +2 -0
- package/src/flags/art/4x3/mg.ts +2 -0
- package/src/flags/art/4x3/mh.ts +2 -0
- package/src/flags/art/4x3/mk.ts +2 -0
- package/src/flags/art/4x3/ml.ts +2 -0
- package/src/flags/art/4x3/mm.ts +2 -0
- package/src/flags/art/4x3/mn.ts +2 -0
- package/src/flags/art/4x3/mo.ts +2 -0
- package/src/flags/art/4x3/mp.ts +2 -0
- package/src/flags/art/4x3/mq.ts +2 -0
- package/src/flags/art/4x3/mr.ts +2 -0
- package/src/flags/art/4x3/ms.ts +2 -0
- package/src/flags/art/4x3/mt.ts +2 -0
- package/src/flags/art/4x3/mu.ts +2 -0
- package/src/flags/art/4x3/mv.ts +2 -0
- package/src/flags/art/4x3/mw.ts +2 -0
- package/src/flags/art/4x3/mx.ts +2 -0
- package/src/flags/art/4x3/my.ts +2 -0
- package/src/flags/art/4x3/mz.ts +2 -0
- package/src/flags/art/4x3/na.ts +2 -0
- package/src/flags/art/4x3/nc.ts +2 -0
- package/src/flags/art/4x3/ne.ts +2 -0
- package/src/flags/art/4x3/nf.ts +2 -0
- package/src/flags/art/4x3/ng.ts +2 -0
- package/src/flags/art/4x3/ni.ts +2 -0
- package/src/flags/art/4x3/nl.ts +2 -0
- package/src/flags/art/4x3/no.ts +2 -0
- package/src/flags/art/4x3/np.ts +2 -0
- package/src/flags/art/4x3/nr.ts +2 -0
- package/src/flags/art/4x3/nu.ts +2 -0
- package/src/flags/art/4x3/nz.ts +2 -0
- package/src/flags/art/4x3/om.ts +2 -0
- package/src/flags/art/4x3/pa.ts +2 -0
- package/src/flags/art/4x3/pc.ts +2 -0
- package/src/flags/art/4x3/pe.ts +2 -0
- package/src/flags/art/4x3/pf.ts +2 -0
- package/src/flags/art/4x3/pg.ts +2 -0
- package/src/flags/art/4x3/ph.ts +2 -0
- package/src/flags/art/4x3/pk.ts +2 -0
- package/src/flags/art/4x3/pl.ts +2 -0
- package/src/flags/art/4x3/pm.ts +2 -0
- package/src/flags/art/4x3/pn.ts +2 -0
- package/src/flags/art/4x3/pr.ts +2 -0
- package/src/flags/art/4x3/ps.ts +2 -0
- package/src/flags/art/4x3/pt.ts +2 -0
- package/src/flags/art/4x3/pw.ts +2 -0
- package/src/flags/art/4x3/py.ts +2 -0
- package/src/flags/art/4x3/qa.ts +2 -0
- package/src/flags/art/4x3/re.ts +2 -0
- package/src/flags/art/4x3/ro.ts +2 -0
- package/src/flags/art/4x3/rs.ts +2 -0
- package/src/flags/art/4x3/ru.ts +2 -0
- package/src/flags/art/4x3/rw.ts +2 -0
- package/src/flags/art/4x3/sa.ts +2 -0
- package/src/flags/art/4x3/sb.ts +2 -0
- package/src/flags/art/4x3/sc.ts +2 -0
- package/src/flags/art/4x3/sd.ts +2 -0
- package/src/flags/art/4x3/se.ts +2 -0
- package/src/flags/art/4x3/sg.ts +2 -0
- package/src/flags/art/4x3/sh-ac.ts +2 -0
- package/src/flags/art/4x3/sh-hl.ts +2 -0
- package/src/flags/art/4x3/sh-ta.ts +2 -0
- package/src/flags/art/4x3/sh.ts +2 -0
- package/src/flags/art/4x3/si.ts +2 -0
- package/src/flags/art/4x3/sj.ts +2 -0
- package/src/flags/art/4x3/sk.ts +2 -0
- package/src/flags/art/4x3/sl.ts +2 -0
- package/src/flags/art/4x3/sm.ts +2 -0
- package/src/flags/art/4x3/sn.ts +2 -0
- package/src/flags/art/4x3/so.ts +2 -0
- package/src/flags/art/4x3/sr.ts +2 -0
- package/src/flags/art/4x3/ss.ts +2 -0
- package/src/flags/art/4x3/st.ts +2 -0
- package/src/flags/art/4x3/sv.ts +2 -0
- package/src/flags/art/4x3/sx.ts +2 -0
- package/src/flags/art/4x3/sy.ts +2 -0
- package/src/flags/art/4x3/sz.ts +2 -0
- package/src/flags/art/4x3/tc.ts +2 -0
- package/src/flags/art/4x3/td.ts +2 -0
- package/src/flags/art/4x3/tf.ts +2 -0
- package/src/flags/art/4x3/tg.ts +2 -0
- package/src/flags/art/4x3/th.ts +2 -0
- package/src/flags/art/4x3/tj.ts +2 -0
- package/src/flags/art/4x3/tk.ts +2 -0
- package/src/flags/art/4x3/tl.ts +2 -0
- package/src/flags/art/4x3/tm.ts +2 -0
- package/src/flags/art/4x3/tn.ts +2 -0
- package/src/flags/art/4x3/to.ts +2 -0
- package/src/flags/art/4x3/tr.ts +2 -0
- package/src/flags/art/4x3/tt.ts +2 -0
- package/src/flags/art/4x3/tv.ts +2 -0
- package/src/flags/art/4x3/tw.ts +2 -0
- package/src/flags/art/4x3/tz.ts +2 -0
- package/src/flags/art/4x3/ua.ts +2 -0
- package/src/flags/art/4x3/ug.ts +2 -0
- package/src/flags/art/4x3/um.ts +2 -0
- package/src/flags/art/4x3/un.ts +2 -0
- package/src/flags/art/4x3/us.ts +2 -0
- package/src/flags/art/4x3/uy.ts +2 -0
- package/src/flags/art/4x3/uz.ts +2 -0
- package/src/flags/art/4x3/va.ts +2 -0
- package/src/flags/art/4x3/vc.ts +2 -0
- package/src/flags/art/4x3/ve.ts +2 -0
- package/src/flags/art/4x3/vg.ts +2 -0
- package/src/flags/art/4x3/vi.ts +2 -0
- package/src/flags/art/4x3/vn.ts +2 -0
- package/src/flags/art/4x3/vu.ts +2 -0
- package/src/flags/art/4x3/wf.ts +2 -0
- package/src/flags/art/4x3/ws.ts +2 -0
- package/src/flags/art/4x3/xk.ts +2 -0
- package/src/flags/art/4x3/xx.ts +2 -0
- package/src/flags/art/4x3/ye.ts +2 -0
- package/src/flags/art/4x3/yt.ts +2 -0
- package/src/flags/art/4x3/za.ts +2 -0
- package/src/flags/art/4x3/zm.ts +2 -0
- package/src/flags/art/4x3/zw.ts +2 -0
- package/src/flags/art/index.ts +552 -0
- package/src/flags/flags.test.tsx +140 -0
- package/src/flags/index.ts +7 -0
- package/src/flags/loadFlag.ts +29 -0
- package/src/flags/names.ts +65 -0
- package/src/flow/CLEAN-ROOM.md +110 -0
- package/src/flow/PROVENANCE.md +169 -0
- package/src/flow/README.md +117 -0
- package/src/flow/agents/AgentCreationWizard.tsx +633 -0
- package/src/flow/agents/AgentEditorDialog.tsx +751 -0
- package/src/flow/agents/agents.css +563 -0
- package/src/flow/agents/agents.test.tsx +207 -0
- package/src/flow/agents/index.ts +4 -0
- package/src/flow/agents/parts.tsx +171 -0
- package/src/flow/assistant/AssistantConversation.tsx +388 -0
- package/src/flow/assistant/AssistantVisualBlock.test.tsx +86 -0
- package/src/flow/assistant/AssistantVisualBlock.tsx +75 -0
- package/src/flow/assistant/ConversationShell.test.tsx +202 -0
- package/src/flow/assistant/ConversationShell.tsx +160 -0
- package/src/flow/assistant/LiveCanvasPanel.tsx +52 -0
- package/src/flow/assistant/MarkdownView.tsx +162 -0
- package/src/flow/assistant/ThreadHistory.tsx +156 -0
- package/src/flow/assistant/assistant.css +567 -0
- package/src/flow/assistant/index.ts +10 -0
- package/src/flow/assistant/threadDays.ts +44 -0
- package/src/flow/assistant/useAssistantSession.test.tsx +172 -0
- package/src/flow/assistant/useAssistantSession.ts +457 -0
- package/src/flow/assistant/visual.ts +205 -0
- package/src/flow/catalog/RenderCatalog.tsx +98 -0
- package/src/flow/catalog/catalog.test.tsx +162 -0
- package/src/flow/catalog/icons.ts +116 -0
- package/src/flow/catalog/kindCatalog.ts +175 -0
- package/src/flow/catalog/nodeState.ts +46 -0
- package/src/flow/catalog/palette.ts +116 -0
- package/src/flow/connectors/ConditionalConnector.css +274 -0
- package/src/flow/connectors/ConditionalConnector.tsx +288 -0
- package/src/flow/connectors/ConnectionPreviewLine.tsx +31 -0
- package/src/flow/connectors/ConnectorInsertMenu.tsx +103 -0
- package/src/flow/connectors/connectors.css +2 -0
- package/src/flow/connectors/connectors.test.tsx +218 -0
- package/src/flow/connectors/index.ts +4 -0
- package/src/flow/decision/DecisionNode.tsx +182 -0
- package/src/flow/decision/decision.css +1 -0
- package/src/flow/decision/index.ts +3 -0
- package/src/flow/decision/types.ts +60 -0
- package/src/flow/dialogs/DefinitionDialogs.test.tsx +177 -0
- package/src/flow/dialogs/DefinitionExportDialog.tsx +234 -0
- package/src/flow/dialogs/DefinitionImportDialog.tsx +303 -0
- package/src/flow/dialogs/FlowSettingsDialog.test.tsx +95 -0
- package/src/flow/dialogs/FlowSettingsDialog.tsx +242 -0
- package/src/flow/dialogs/NodeConfigDialog.test.tsx +151 -0
- package/src/flow/dialogs/NodeConfigDialog.tsx +208 -0
- package/src/flow/dialogs/dialogs.css +134 -0
- package/src/flow/dialogs/index.ts +5 -0
- package/src/flow/editor/AutosaveController.tsx +25 -0
- package/src/flow/editor/CanvasCommandBar.tsx +315 -0
- package/src/flow/editor/CanvasContextMenus.tsx +287 -0
- package/src/flow/editor/FlowEditor.test.tsx +282 -0
- package/src/flow/editor/FlowEditor.tsx +1214 -0
- package/src/flow/editor/FlowOutline.tsx +196 -0
- package/src/flow/editor/FlowPreview.tsx +149 -0
- package/src/flow/editor/FlowSwitcherBar.tsx +141 -0
- package/src/flow/editor/NodePalette.tsx +447 -0
- package/src/flow/editor/RunControls.tsx +85 -0
- package/src/flow/editor/SaveStatus.tsx +45 -0
- package/src/flow/editor/editor.css +573 -0
- package/src/flow/editor/editorTools.ts +135 -0
- package/src/flow/editor/focusOut.ts +23 -0
- package/src/flow/editor/index.ts +16 -0
- package/src/flow/editor/keyMap.ts +93 -0
- package/src/flow/editor/nodeBridge.tsx +66 -0
- package/src/flow/editor/parts.test.tsx +519 -0
- package/src/flow/editor/useEditorShortcuts.ts +122 -0
- package/src/flow/editor/useSelectionArrange.ts +135 -0
- package/src/flow/expressions/ComputeInsertPanel.tsx +123 -0
- package/src/flow/expressions/ComputeNodeForm.tsx +291 -0
- package/src/flow/expressions/ComputeTrial.tsx +105 -0
- package/src/flow/expressions/ExpressionBuilder.test.tsx +161 -0
- package/src/flow/expressions/ExpressionBuilder.tsx +71 -0
- package/src/flow/expressions/ExpressionField.tsx +157 -0
- package/src/flow/expressions/RuleEditor.tsx +645 -0
- package/src/flow/expressions/RuleNodeForm.tsx +165 -0
- package/src/flow/expressions/SimulationNodeForm.tsx +175 -0
- package/src/flow/expressions/TraceTree.test.tsx +120 -0
- package/src/flow/expressions/TraceTree.tsx +210 -0
- package/src/flow/expressions/builder/ItemList.tsx +72 -0
- package/src/flow/expressions/builder/leaves.tsx +94 -0
- package/src/flow/expressions/builder/shared.tsx +55 -0
- package/src/flow/expressions/builder/tree.tsx +221 -0
- package/src/flow/expressions/catalogContext.tsx +21 -0
- package/src/flow/expressions/computeDraft.ts +105 -0
- package/src/flow/expressions/exampleCatalog.ts +42 -0
- package/src/flow/expressions/expressions.css +520 -0
- package/src/flow/expressions/forms.test.tsx +325 -0
- package/src/flow/expressions/index.ts +15 -0
- package/src/flow/expressions/labels.ts +204 -0
- package/src/flow/expressions/model.ts +194 -0
- package/src/flow/expressions/ruleActions.ts +164 -0
- package/src/flow/expressions/ruleCondition.ts +98 -0
- package/src/flow/expressions/trace.ts +98 -0
- package/src/flow/forms/AgentNodeForm.css +29 -0
- package/src/flow/forms/AgentNodeForm.test.tsx +66 -0
- package/src/flow/forms/AgentNodeForm.tsx +177 -0
- package/src/flow/forms/DataSourceNodeForm.test.tsx +121 -0
- package/src/flow/forms/DataSourceNodeForm.tsx +519 -0
- package/src/flow/forms/DecisionNodeForm.test.tsx +72 -0
- package/src/flow/forms/DecisionNodeForm.tsx +302 -0
- package/src/flow/forms/GroupNodeForm.css +72 -0
- package/src/flow/forms/GroupNodeForm.test.tsx +55 -0
- package/src/flow/forms/GroupNodeForm.tsx +148 -0
- package/src/flow/forms/NewForms.css +256 -0
- package/src/flow/forms/NodeFormFooter.tsx +44 -0
- package/src/flow/forms/OutputSchemaBuilder.test.tsx +83 -0
- package/src/flow/forms/OutputSchemaBuilder.tsx +325 -0
- package/src/flow/forms/ReportOutputNodeForm.test.tsx +63 -0
- package/src/flow/forms/ReportOutputNodeForm.tsx +180 -0
- package/src/flow/forms/SchemaConfigForm.css +7 -0
- package/src/flow/forms/SchemaConfigForm.test.tsx +74 -0
- package/src/flow/forms/SchemaConfigForm.tsx +214 -0
- package/src/flow/forms/StartNodeForm.css +29 -0
- package/src/flow/forms/StartNodeForm.test.tsx +66 -0
- package/src/flow/forms/StartNodeForm.tsx +88 -0
- package/src/flow/forms/ToolServerListField.css +58 -0
- package/src/flow/forms/ToolServerListField.test.tsx +73 -0
- package/src/flow/forms/ToolServerListField.tsx +242 -0
- package/src/flow/forms/VariableListEditor.css +82 -0
- package/src/flow/forms/VariableListEditor.test.tsx +79 -0
- package/src/flow/forms/VariableListEditor.tsx +280 -0
- package/src/flow/forms/forms-shared.css +53 -0
- package/src/flow/forms/forms.css +9 -0
- package/src/flow/forms/index.ts +12 -0
- package/src/flow/forms/nameListModel.ts +61 -0
- package/src/flow/geometry/arrange.ts +74 -0
- package/src/flow/geometry/curve.ts +58 -0
- package/src/flow/geometry/geometry.test.ts +97 -0
- package/src/flow/geometry/guides.ts +49 -0
- package/src/flow/geometry/rect.ts +101 -0
- package/src/flow/geometry/viewport.ts +70 -0
- package/src/flow/index.ts +58 -0
- package/src/flow/internal/Announcer.tsx +63 -0
- package/src/flow/internal/DockedPanel.tsx +95 -0
- package/src/flow/internal/SectionedModal.tsx +117 -0
- package/src/flow/internal/builtInLabels.test.ts +16 -0
- package/src/flow/internal/confirm.tsx +73 -0
- package/src/flow/internal/format.ts +47 -0
- package/src/flow/internal/i18n.test.tsx +109 -0
- package/src/flow/internal/ids.ts +9 -0
- package/src/flow/internal/internal.css +152 -0
- package/src/flow/internal/labels.ts +101 -0
- package/src/flow/internal/messageFormat.ts +102 -0
- package/src/flow/internal/useControllable.ts +17 -0
- package/src/flow/layout/autoLayout.test.ts +56 -0
- package/src/flow/layout/autoLayout.ts +93 -0
- package/src/flow/layout/chainLayout.ts +66 -0
- package/src/flow/model/graph.ts +123 -0
- package/src/flow/model/types.ts +83 -0
- package/src/flow/nodes/AgentIdentity.tsx +145 -0
- package/src/flow/nodes/AgentNode.tsx +152 -0
- package/src/flow/nodes/AlignmentGuides.tsx +108 -0
- package/src/flow/nodes/ConnectionPorts.tsx +277 -0
- package/src/flow/nodes/DataSourceNode.tsx +179 -0
- package/src/flow/nodes/GenericNode.tsx +114 -0
- package/src/flow/nodes/GraphNodeCard.css +314 -0
- package/src/flow/nodes/GraphNodeCard.test.tsx +117 -0
- package/src/flow/nodes/GraphNodeCard.tsx +329 -0
- package/src/flow/nodes/GroupNode.tsx +231 -0
- package/src/flow/nodes/NodeRunIndicator.tsx +139 -0
- package/src/flow/nodes/NoteNode.tsx +134 -0
- package/src/flow/nodes/RuleNode.tsx +162 -0
- package/src/flow/nodes/flow-nodes.css +687 -0
- package/src/flow/nodes/groupLayout.ts +66 -0
- package/src/flow/nodes/index.ts +18 -0
- package/src/flow/nodes/nodeChrome.tsx +113 -0
- package/src/flow/nodes/nodes.css +3 -0
- package/src/flow/nodes/nodes.test.tsx +529 -0
- package/src/flow/nodes/ports.ts +127 -0
- package/src/flow/nodes/registry.tsx +262 -0
- package/src/flow/nodes/sourceMarks.tsx +52 -0
- package/src/flow/nodes/types.ts +85 -0
- package/src/flow/provenance/EditionCompare.tsx +292 -0
- package/src/flow/provenance/NumberTrace.tsx +208 -0
- package/src/flow/provenance/ProvenanceCertificate.tsx +263 -0
- package/src/flow/provenance/ProvenanceFilters.tsx +137 -0
- package/src/flow/provenance/ProvenanceGraph.css +1156 -0
- package/src/flow/provenance/ProvenanceGraph.test.tsx +361 -0
- package/src/flow/provenance/ProvenanceGraph.tsx +725 -0
- package/src/flow/provenance/ProvenanceInspector.tsx +201 -0
- package/src/flow/provenance/ProvenanceLegend.tsx +66 -0
- package/src/flow/provenance/ProvenanceNode.tsx +171 -0
- package/src/flow/provenance/ProvenanceShellParts.test.tsx +130 -0
- package/src/flow/provenance/ProvenanceTimeline.tsx +342 -0
- package/src/flow/provenance/ProvenanceTree.tsx +143 -0
- package/src/flow/provenance/ProvenanceViews.css +828 -0
- package/src/flow/provenance/ProvenanceViews.test.tsx +307 -0
- package/src/flow/provenance/index.ts +14 -0
- package/src/flow/provenance/labels.ts +418 -0
- package/src/flow/provenance/model.ts +381 -0
- package/src/flow/provenance/proofTypes.ts +93 -0
- package/src/flow/provenance/provenance.css +3 -0
- package/src/flow/report/ClaimTitle.tsx +15 -0
- package/src/flow/report/ProvenanceTag.test.tsx +37 -0
- package/src/flow/report/ProvenanceTag.tsx +58 -0
- package/src/flow/report/ReportView.test.tsx +59 -0
- package/src/flow/report/ReportView.tsx +359 -0
- package/src/flow/report/index.ts +4 -0
- package/src/flow/report/report.css +267 -0
- package/src/flow/run/ExecutionTimeline.tsx +478 -0
- package/src/flow/run/NumberInput.tsx +59 -0
- package/src/flow/run/RunDrawer.tsx +485 -0
- package/src/flow/run/RunInputDialog.tsx +149 -0
- package/src/flow/run/RunPanel.tsx +136 -0
- package/src/flow/run/RunPreviewPanel.tsx +269 -0
- package/src/flow/run/RunReplayDialog.tsx +278 -0
- package/src/flow/run/RunRewindDialog.tsx +197 -0
- package/src/flow/run/RunStatusMark.tsx +79 -0
- package/src/flow/run/RunTimePanel.test.tsx +55 -0
- package/src/flow/run/RunTimePanel.tsx +143 -0
- package/src/flow/run/RunViews.tsx +170 -0
- package/src/flow/run/ShortId.tsx +15 -0
- package/src/flow/run/VariableInspector.tsx +198 -0
- package/src/flow/run/VersionHistoryPanel.tsx +178 -0
- package/src/flow/run/execution.ts +187 -0
- package/src/flow/run/index.ts +18 -0
- package/src/flow/run/lineage.ts +123 -0
- package/src/flow/run/rewindPlan.ts +79 -0
- package/src/flow/run/run.css +749 -0
- package/src/flow/run/run.test.tsx +533 -0
- package/src/flow/run/runData.ts +124 -0
- package/src/flow/run/types.ts +53 -0
- package/src/flow/state/dialogStack.tsx +90 -0
- package/src/flow/state/editorState.test.tsx +110 -0
- package/src/flow/state/editorState.tsx +296 -0
- package/src/flow/state/graphEdits.ts +107 -0
- package/src/flow/state/store.ts +67 -0
- package/src/flow/steps/AddStepPicker.tsx +108 -0
- package/src/flow/steps/FlowSidePanel.tsx +318 -0
- package/src/flow/steps/IssueBar.tsx +58 -0
- package/src/flow/steps/ShapeChip.tsx +41 -0
- package/src/flow/steps/StepCard.tsx +139 -0
- package/src/flow/steps/StepListView.tsx +152 -0
- package/src/flow/steps/StepPalette.tsx +194 -0
- package/src/flow/steps/StepsContext.tsx +70 -0
- package/src/flow/steps/index.ts +15 -0
- package/src/flow/steps/researchSteps.ts +269 -0
- package/src/flow/steps/shapes.ts +46 -0
- package/src/flow/steps/stepLabels.ts +160 -0
- package/src/flow/steps/stepTools.ts +37 -0
- package/src/flow/steps/steps.css +962 -0
- package/src/flow/steps/steps.test.tsx +351 -0
- package/src/flow/steps/wiring.ts +123 -0
- package/src/flow/styles.css +23 -0
- package/src/flow/surface/CanvasSurface.test.tsx +148 -0
- package/src/flow/surface/CanvasSurface.tsx +674 -0
- package/src/flow/surface/OverviewMap.tsx +50 -0
- package/src/flow/surface/SurfaceContext.tsx +28 -0
- package/src/flow/surface/surface.css +200 -0
- package/src/flow/surface/types.ts +97 -0
- package/src/flow/surface/useElementSize.ts +29 -0
- package/src/flow/surface/useNodeMeasurement.ts +71 -0
- package/src/flow/toolbar/CanvasNodeSearch.tsx +110 -0
- package/src/flow/toolbar/CanvasToolbar.test.tsx +101 -0
- package/src/flow/toolbar/CanvasToolbar.tsx +114 -0
- package/src/flow/toolbar/canvasTools.ts +114 -0
- package/src/flow/toolbar/dockItems.test.tsx +47 -0
- package/src/flow/toolbar/dockItems.tsx +51 -0
- package/src/flow/toolbar/index.ts +5 -0
- package/src/flow/toolbar/toolbar.css +217 -0
- package/src/groups/auth-brand.css +18 -0
- package/src/groups/auth-brand.ts +17 -0
- package/src/groups/charts-geo.css +6 -0
- package/src/groups/charts-geo.ts +98 -0
- package/src/groups/data-a.css +13 -0
- package/src/groups/data-a.ts +14 -0
- package/src/groups/data-b.css +11 -0
- package/src/groups/data-b.ts +11 -0
- package/src/groups/forms-a.css +17 -0
- package/src/groups/forms-a.ts +15 -0
- package/src/groups/forms-b.css +14 -0
- package/src/groups/forms-b.ts +13 -0
- package/src/groups/overlays-nav.css +15 -0
- package/src/groups/overlays-nav.ts +16 -0
- package/src/groups/platform.css +7 -0
- package/src/groups/platform.ts +101 -0
- package/src/groups/shell.css +10 -0
- package/src/groups/shell.ts +10 -0
- package/src/groups/showcase.css +8 -0
- package/src/groups/showcase.ts +9 -0
- package/src/index.ts +68 -0
- package/src/internal/ThemeScope.tsx +28 -0
- package/src/internal/VisuallyHidden.tsx +10 -0
- package/src/internal/cx.ts +4 -0
- package/src/internal/data-a/announce.ts +38 -0
- package/src/internal/data-a/clipboard.ts +11 -0
- package/src/internal/data-b/signed.ts +34 -0
- package/src/internal/data-b/tween.ts +67 -0
- package/src/internal/dev.ts +12 -0
- package/src/internal/dom.ts +42 -0
- package/src/internal/forms-a/LiveNote.tsx +18 -0
- package/src/internal/forms-a/SearchInput.css +125 -0
- package/src/internal/forms-a/SearchInput.tsx +52 -0
- package/src/internal/forms-a/marks.tsx +18 -0
- package/src/internal/forms-a/shared.css +25 -0
- package/src/internal/forms-b/digits.ts +33 -0
- package/src/internal/forms-b/forms-b.css +341 -0
- package/src/internal/forms-b/parts.tsx +151 -0
- package/src/internal/haptics.ts +77 -0
- package/src/internal/icuCatalogue.ts +60 -0
- package/src/internal/inert.ts +15 -0
- package/src/internal/media.ts +35 -0
- package/src/internal/messages/auth-brand.ts +161 -0
- package/src/internal/messages/charts-geo.ts +289 -0
- package/src/internal/messages/core-es.ts +111 -0
- package/src/internal/messages/data-a.ts +199 -0
- package/src/internal/messages/data-b.ts +99 -0
- package/src/internal/messages/forms-a.ts +309 -0
- package/src/internal/messages/forms-b.ts +293 -0
- package/src/internal/messages/overlays-nav.ts +367 -0
- package/src/internal/messages/platform.ts +63 -0
- package/src/internal/messages/plural.ts +24 -0
- package/src/internal/messages/shell.ts +144 -0
- package/src/internal/messages/showcase.ts +12 -0
- package/src/internal/messages.ts +386 -0
- package/src/internal/overlays-nav/fuzzy.ts +115 -0
- package/src/internal/overlays-nav/hold.ts +53 -0
- package/src/internal/overlays-nav/recent.ts +73 -0
- package/src/internal/overlays-nav/state.ts +54 -0
- package/src/internal/platform/touchTrack.ts +49 -0
- package/src/internal/provider.tsx +64 -0
- package/src/internal/speech.ts +24 -0
- package/src/internal/theme.test.tsx +166 -0
- package/src/internal/theme.tsx +181 -0
- package/src/internal/types.ts +4 -0
- package/src/internal/variants.test.ts +14 -0
- package/src/internal/variants.ts +48 -0
- package/src/native-states.css +364 -0
- package/src/styles.css +59 -0
- package/src/utilities/api-error-model/apiErrors.test.ts +74 -0
- package/src/utilities/api-error-model/apiErrors.ts +192 -0
- package/src/utilities/entity-list-loader/useEntityListLoader.test.tsx +72 -0
- package/src/utilities/entity-list-loader/useEntityListLoader.ts +107 -0
- package/src/utilities/formatters/formatters.locales.test.ts +30 -0
- package/src/utilities/formatters/formatters.test.tsx +86 -0
- package/src/utilities/formatters/formatters.ts +190 -0
- package/src/utilities/haptics/haptics.test.tsx +96 -0
- package/src/utilities/haptics/haptics.tsx +79 -0
- package/src/utilities/i18n-adapter/I18nAdapter.test.tsx +70 -0
- package/src/utilities/i18n-adapter/I18nAdapter.tsx +136 -0
- package/src/utilities/i18n-adapter/icu.numeric.test.ts +39 -0
- package/src/utilities/i18n-adapter/icu.ts +207 -0
- package/src/utilities/legacy-alias-map/LEGACY-ALIASES.md +65 -0
- package/src/utilities/legacy-alias-map/legacy-alias-map.test.ts +57 -0
- package/src/utilities/motion-foundation/motion.test.tsx +76 -0
- package/src/utilities/motion-foundation/motion.tsx +119 -0
- package/src/utilities/router-adapter/Routing.test.tsx +68 -0
- package/src/utilities/router-adapter/Routing.tsx +149 -0
- package/src/utilities/view-transition/animatedChange.test.ts +72 -0
- package/src/utilities/view-transition/animatedChange.ts +90 -0
- package/dist/src-Ds9ArSaP.js.map +0 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { render, screen, waitFor } from '@testing-library/react'
|
|
2
|
+
import { describe, expect, it } from 'vitest'
|
|
3
|
+
import { TympanProvider } from '../internal/provider'
|
|
4
|
+
import { expectNoAxeViolations } from '../../test/axe'
|
|
5
|
+
import { cssOf } from '../../test/css'
|
|
6
|
+
import { renderRtl } from '../../test/rtl'
|
|
7
|
+
import { FLAG_CODES, Flag, flagName, isFlagCode, loadFlagSvg, normalizeFlagCode } from './index'
|
|
8
|
+
|
|
9
|
+
const loaded = (el: Element) => waitFor(() => expect(el).toHaveAttribute('data-loaded'))
|
|
10
|
+
|
|
11
|
+
describe('flag codes', () => {
|
|
12
|
+
it('covers countries, UK and Spanish subdivisions and organisations in both aspects', async () => {
|
|
13
|
+
expect(FLAG_CODES.length).toBeGreaterThanOrEqual(250)
|
|
14
|
+
for (const code of ['br', 'jp', 'gb-sct', 'gb-wls', 'es-ct', 'eu', 'un', 'asean', 'xx']) expect(isFlagCode(code), code).toBe(true)
|
|
15
|
+
const [wide, square] = await Promise.all([loadFlagSvg('gb-sct', '4x3'), loadFlagSvg('gb-sct', '1x1')])
|
|
16
|
+
expect(wide).toMatch(/viewBox="0 0 640 480"/)
|
|
17
|
+
expect(square).toMatch(/viewBox="0 0 512 512"/)
|
|
18
|
+
expect(await loadFlagSvg('zz-unknown')).toBeNull()
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it('keeps internal ids apart between aspects', async () => {
|
|
22
|
+
const [wide, square] = await Promise.all([loadFlagSvg('us', '4x3'), loadFlagSvg('us', '1x1')])
|
|
23
|
+
expect(wide).toContain('id="ty-flag-4x3-us-a"')
|
|
24
|
+
expect(square).toContain('id="ty-flag-1x1-us-a"')
|
|
25
|
+
expect(wide).not.toContain('id="flag-icons-us"')
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
it('normalises codes', () => {
|
|
29
|
+
expect(normalizeFlagCode(' GB_SCT ')).toBe('gb-sct')
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
describe('flagName', () => {
|
|
34
|
+
it('names countries in the reader locale (Intl.DisplayNames)', () => {
|
|
35
|
+
expect(flagName('BR', 'en')).toBe('Brazil')
|
|
36
|
+
expect(flagName('br', 'pt-BR')).toBe('Brasil')
|
|
37
|
+
expect(flagName('de', 'ja')).toBe('ドイツ')
|
|
38
|
+
expect(flagName('eu', 'es')).toBe('Unión Europea')
|
|
39
|
+
expect(flagName('sh-ta', 'en')).toBe('Tristan da Cunha')
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
it('names subdivisions and organisations CLDR does not know', () => {
|
|
43
|
+
expect(flagName('gb-sct', 'en')).toBe('Scotland')
|
|
44
|
+
expect(flagName('gb-sct', 'pt-BR')).toBe('Escócia')
|
|
45
|
+
expect(flagName('es-ct', 'es')).toBe('Cataluña')
|
|
46
|
+
expect(flagName('es-ct', 'ja')).toBe('Catalonia')
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
it('falls back to the code', () => {
|
|
50
|
+
expect(flagName('qq', 'en')).toBe('QQ')
|
|
51
|
+
expect(flagName('xx-yy', 'en')).toBe('XX-YY')
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
describe('Flag', () => {
|
|
56
|
+
it('is an image named after the region in the active locale', async () => {
|
|
57
|
+
render(
|
|
58
|
+
<TympanProvider locale="pt-BR">
|
|
59
|
+
<Flag code="JP" />
|
|
60
|
+
</TympanProvider>,
|
|
61
|
+
)
|
|
62
|
+
const flag = screen.getByRole('img', { name: 'Japão' })
|
|
63
|
+
await loaded(flag)
|
|
64
|
+
const img = flag.querySelector('img')!
|
|
65
|
+
expect(img).toHaveAttribute('alt', '')
|
|
66
|
+
expect(img.getAttribute('src')).toMatch(/^data:image\/svg\+xml/)
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
it('names the flag in English, Japanese and Arabic', () => {
|
|
70
|
+
for (const [locale, name] of [
|
|
71
|
+
['en', 'Germany'],
|
|
72
|
+
['ja', 'ドイツ'],
|
|
73
|
+
['ar', 'ألمانيا'],
|
|
74
|
+
] as const) {
|
|
75
|
+
const { unmount } = render(
|
|
76
|
+
<TympanProvider locale={locale}>
|
|
77
|
+
<Flag code="de" />
|
|
78
|
+
</TympanProvider>,
|
|
79
|
+
)
|
|
80
|
+
expect(screen.getByRole('img', { name })).toBeInTheDocument()
|
|
81
|
+
unmount()
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
it('takes a label, and hides itself when decorative', () => {
|
|
86
|
+
const { container } = render(
|
|
87
|
+
<>
|
|
88
|
+
<Flag code="br" label="Brazil (host)" />
|
|
89
|
+
<Flag code="br" decorative />
|
|
90
|
+
</>,
|
|
91
|
+
)
|
|
92
|
+
expect(screen.getByRole('img', { name: 'Brazil (host)' })).toBeInTheDocument()
|
|
93
|
+
expect(container.querySelectorAll('.ty-flag')[1]).toHaveAttribute('aria-hidden', 'true')
|
|
94
|
+
expect(screen.getAllByRole('img')).toHaveLength(1)
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
it('draws square art for 1x1 and circle, and the unknown flag for an unknown code', async () => {
|
|
98
|
+
const { container } = render(
|
|
99
|
+
<>
|
|
100
|
+
<Flag code="ca" aspect="1x1" />
|
|
101
|
+
<Flag code="ca" aspect="circle" size="small" />
|
|
102
|
+
<Flag code="qq" />
|
|
103
|
+
</>,
|
|
104
|
+
)
|
|
105
|
+
const [square, circle, unknown] = [...container.querySelectorAll('.ty-flag')]
|
|
106
|
+
await Promise.all([loaded(square!), loaded(circle!), loaded(unknown!)])
|
|
107
|
+
expect(decodeURIComponent(square!.querySelector('img')!.src)).toContain('viewBox="0 0 512 512"')
|
|
108
|
+
expect(circle).toHaveAttribute('data-aspect', 'circle')
|
|
109
|
+
expect(unknown).toHaveAttribute('aria-label', 'QQ')
|
|
110
|
+
expect(decodeURIComponent(unknown!.querySelector('img')!.src)).toContain('data-flag="xx"')
|
|
111
|
+
const css = cssOf('flags/Flag.css')
|
|
112
|
+
expect(css).toMatch(/\[data-aspect='circle'\]\s*\{\s*border-radius:\s*50%/)
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
it('has no axe violations', async () => {
|
|
116
|
+
const { container } = render(
|
|
117
|
+
<div>
|
|
118
|
+
<Flag code="br" />
|
|
119
|
+
<Flag code="gb-sct" aspect="1x1" />
|
|
120
|
+
<Flag code="eu" aspect="circle" />
|
|
121
|
+
<span>
|
|
122
|
+
<Flag code="jp" decorative /> Japan
|
|
123
|
+
</span>
|
|
124
|
+
</div>,
|
|
125
|
+
)
|
|
126
|
+
await Promise.all([...container.querySelectorAll('.ty-flag')].map(loaded))
|
|
127
|
+
await expectNoAxeViolations(container)
|
|
128
|
+
})
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
describe('Flag in right-to-left (ar)', () => {
|
|
132
|
+
it('names the region in Arabic, does not mirror and passes axe', async () => {
|
|
133
|
+
const { container } = renderRtl(<Flag code="sa" />)
|
|
134
|
+
const flag = screen.getByRole('img', { name: 'المملكة العربية السعودية' })
|
|
135
|
+
await loaded(flag)
|
|
136
|
+
expect(flag.className).not.toMatch(/mirror/)
|
|
137
|
+
expect(cssOf('flags/Flag.css')).not.toMatch(/scaleX\(-1\)/)
|
|
138
|
+
await expectNoAxeViolations(container)
|
|
139
|
+
})
|
|
140
|
+
})
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// @datatechsolutions/tympan/flags (FSL-1.1-ALv2): country, territory and
|
|
2
|
+
// regional flags from flag-icons (MIT), one lazily loaded chunk per flag.
|
|
3
|
+
// Flags stand for places, never for languages.
|
|
4
|
+
export { Flag, type FlagProps, type FlagAspect, type FlagSize } from './Flag'
|
|
5
|
+
export { flagName, normalizeFlagCode } from './names'
|
|
6
|
+
export { loadFlagSvg, isFlagCode, type FlagArt } from './loadFlag'
|
|
7
|
+
export { FLAG_CODES, FLAG_ICONS_VERSION, type FlagCode } from './art'
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { FLAG_CODES, loaders1by1, loaders4by3, type FlagCode } from './art'
|
|
2
|
+
|
|
3
|
+
export type FlagArt = '4x3' | '1x1'
|
|
4
|
+
|
|
5
|
+
const known = new Set<string>(FLAG_CODES)
|
|
6
|
+
const cache = new Map<string, string>()
|
|
7
|
+
|
|
8
|
+
export function isFlagCode(code: string): code is FlagCode {
|
|
9
|
+
return known.has(code)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Cached SVG of a flag, if it has been loaded already. */
|
|
13
|
+
export function cachedFlagSvg(code: FlagCode, art: FlagArt): string | undefined {
|
|
14
|
+
return cache.get(`${art}/${code}`)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Loads one flag's SVG (its own chunk, so a page pays only for the flags it
|
|
19
|
+
* shows). Unknown codes resolve to null.
|
|
20
|
+
*/
|
|
21
|
+
export async function loadFlagSvg(code: string, art: FlagArt = '4x3'): Promise<string | null> {
|
|
22
|
+
if (!isFlagCode(code)) return null
|
|
23
|
+
const key = `${art}/${code}`
|
|
24
|
+
const hit = cache.get(key)
|
|
25
|
+
if (hit) return hit
|
|
26
|
+
const mod = await (art === '1x1' ? loaders1by1 : loaders4by3)[code]()
|
|
27
|
+
cache.set(key, mod.default)
|
|
28
|
+
return mod.default
|
|
29
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Accessible names of flags. Countries and territories come from
|
|
2
|
+
// Intl.DisplayNames in the reader's locale; the few flags CLDR has no region
|
|
3
|
+
// for (UK nations, Spanish communities, regional organisations) carry their
|
|
4
|
+
// own names in English, Portuguese and Spanish, and English elsewhere.
|
|
5
|
+
|
|
6
|
+
/** flag-icons codes that CLDR knows under another region code. */
|
|
7
|
+
const REGION_ALIAS: Record<string, string> = { 'sh-ac': 'AC', 'sh-hl': 'SH', 'sh-ta': 'TA', xx: 'ZZ' }
|
|
8
|
+
|
|
9
|
+
type Names = { en: string; pt?: string; es?: string }
|
|
10
|
+
const OWN_NAMES: Record<string, Names> = {
|
|
11
|
+
'gb-eng': { en: 'England', pt: 'Inglaterra', es: 'Inglaterra' },
|
|
12
|
+
'gb-nir': { en: 'Northern Ireland', pt: 'Irlanda do Norte', es: 'Irlanda del Norte' },
|
|
13
|
+
'gb-sct': { en: 'Scotland', pt: 'Escócia', es: 'Escocia' },
|
|
14
|
+
'gb-wls': { en: 'Wales', pt: 'País de Gales', es: 'Gales' },
|
|
15
|
+
'es-ct': { en: 'Catalonia', pt: 'Catalunha', es: 'Cataluña' },
|
|
16
|
+
'es-ga': { en: 'Galicia', pt: 'Galiza', es: 'Galicia' },
|
|
17
|
+
'es-pv': { en: 'Basque Country', pt: 'País Basco', es: 'País Vasco' },
|
|
18
|
+
arab: { en: 'Arab League', pt: 'Liga Árabe', es: 'Liga Árabe' },
|
|
19
|
+
asean: { en: 'ASEAN' },
|
|
20
|
+
cefta: { en: 'CEFTA' },
|
|
21
|
+
eac: { en: 'East African Community', pt: 'Comunidade da África Oriental', es: 'Comunidad de África Oriental' },
|
|
22
|
+
pc: { en: 'Pacific Community', pt: 'Comunidade do Pacífico', es: 'Comunidad del Pacífico' },
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Lower-case, hyphenated flag key: `BR` → `br`, `GB_SCT` → `gb-sct`. */
|
|
26
|
+
export function normalizeFlagCode(code: string): string {
|
|
27
|
+
return code.trim().toLowerCase().replace(/_/g, '-')
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const displayNames = new Map<string, Intl.DisplayNames | null>()
|
|
31
|
+
function regionNames(locale: string): Intl.DisplayNames | null {
|
|
32
|
+
if (!displayNames.has(locale)) {
|
|
33
|
+
let names: Intl.DisplayNames | null = null
|
|
34
|
+
try {
|
|
35
|
+
names = new Intl.DisplayNames([locale, 'en'], { type: 'region', fallback: 'none' })
|
|
36
|
+
} catch {
|
|
37
|
+
names = null
|
|
38
|
+
}
|
|
39
|
+
displayNames.set(locale, names)
|
|
40
|
+
}
|
|
41
|
+
return displayNames.get(locale)!
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The name of the country, territory or region a flag stands for, in
|
|
46
|
+
* `locale`; the code in upper case when no name is known.
|
|
47
|
+
*/
|
|
48
|
+
export function flagName(code: string, locale = 'en'): string {
|
|
49
|
+
const key = normalizeFlagCode(code)
|
|
50
|
+
const own = OWN_NAMES[key]
|
|
51
|
+
if (own) {
|
|
52
|
+
const lang = locale.toLowerCase().split('-')[0] as 'pt' | 'es'
|
|
53
|
+
return own[lang] ?? own.en
|
|
54
|
+
}
|
|
55
|
+
const region = REGION_ALIAS[key] ?? (/^[a-z]{2}$/.test(key) ? key.toUpperCase() : null)
|
|
56
|
+
if (region) {
|
|
57
|
+
try {
|
|
58
|
+
const name = regionNames(locale)?.of(region)
|
|
59
|
+
if (name && name !== region) return name
|
|
60
|
+
} catch {
|
|
61
|
+
/* not a valid region subtag */
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return key.toUpperCase()
|
|
65
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Clean-room record
|
|
2
|
+
|
|
3
|
+
> **Licence note (2026-09-26).** This record was written when the packages
|
|
4
|
+
> were planned as MIT. They are published under FSL-1.1-ALv2 (see `LICENSE`
|
|
5
|
+
> at the repository root); the clean-room process below is unchanged.
|
|
6
|
+
|
|
7
|
+
> **Rename note (2026-09-26).** The repository is now Tympan, an
|
|
8
|
+
> Astrlabe-family component published by Datatech. `packages/ui` is
|
|
9
|
+
> `@datatechsolutions/tympan` (called `@fakhir/ui` in this record, before
|
|
10
|
+
> that `@fakhir/design-system`), `packages/flow` is
|
|
11
|
+
> `@datatechsolutions/tympan-flow` (here `@fakhir/flow`, before that
|
|
12
|
+
> `@fakhir/flow-canvas`) and `packages/tokens` is
|
|
13
|
+
> `@datatechsolutions/tympan-tokens` (here `@fakhir/tokens`). The `fk-` class
|
|
14
|
+
> and `--fk-` custom-property prefix and the `data-fk-*` attributes named here
|
|
15
|
+
> are now `ty-`, `--ty-` and `data-ty-*`; `FakhirProvider` is `TympanProvider`;
|
|
16
|
+
> the Fakhir look is the `fakhir` theme preset. This record is otherwise kept
|
|
17
|
+
> as written.
|
|
18
|
+
|
|
19
|
+
> **Merge note (2026-09-26).** `packages/flow`
|
|
20
|
+
> (`@datatechsolutions/tympan-flow`) was later folded into `packages/ui`: its
|
|
21
|
+
> sources are in `packages/ui/src/flow` and it ships as the
|
|
22
|
+
> `@datatechsolutions/tympan/flow` subpath with the
|
|
23
|
+
> `@datatechsolutions/tympan/flow.css` stylesheet. Paths under
|
|
24
|
+
> `packages/flow` named here are now under `packages/ui/src/flow`.
|
|
25
|
+
|
|
26
|
+
Date: 2026-09-26. Author: Natalia Mesquita. Branch: `ds/wave-3` (from
|
|
27
|
+
`ds/clean-room`), worktree `~/datatech/fakhir-ds-canvas`, a sparse checkout
|
|
28
|
+
without the forked packages and the old platform app.
|
|
29
|
+
|
|
30
|
+
## Why
|
|
31
|
+
|
|
32
|
+
The previous workflow canvas package (part of the "fork") is partly derived
|
|
33
|
+
from commercial templates whose licence forbids publishing derivatives. This
|
|
34
|
+
package recreates its behaviour, and adds the provenance graph viewer the
|
|
35
|
+
research platform needs, as new MIT-licensed code without Tailwind, written
|
|
36
|
+
only from behaviour specifications and public documentation.
|
|
37
|
+
|
|
38
|
+
## Roles and who read what
|
|
39
|
+
|
|
40
|
+
| Role | Who | Read | Did not read |
|
|
41
|
+
|---|---|---|---|
|
|
42
|
+
| Spec writer | a separate agent session, before this work | the fork's sources, stories and tests | n/a (does not implement) |
|
|
43
|
+
| Implementer (coordinating) | Claude (agent session `01Ui9nSds3quCVK9RtvTPvgj`), acting for Natalia Mesquita | the allowed inputs below | the fork, its `dist` or stylesheet, any `ui-components` folder, `~/datatech/astrlabe*`, the old platform, the thesis repository's `platform/`, any commercial template material or archive |
|
|
44
|
+
| Implementer (sub-sessions G1–G6b) | eight forked sub-sessions of the same implementer, each writing one group of components in its own folders | the same allowed inputs, plus the code already written in this worktree | same exclusions |
|
|
45
|
+
| Coordinator | the session that assigned the work | both sides; runs the similarity audit from outside the clean room | n/a |
|
|
46
|
+
|
|
47
|
+
The implementer did not open, search, run or copy the fork, did not change the
|
|
48
|
+
sparse checkout, did not inspect other branches, other worktrees or the
|
|
49
|
+
excluded paths with git, and did not modify `packages/ui` or
|
|
50
|
+
`packages/tokens` (a separate session extends them). No spec question needed
|
|
51
|
+
to go back to the spec writer; ambiguities were resolved from the design
|
|
52
|
+
direction and recorded in `PROVENANCE.md`.
|
|
53
|
+
|
|
54
|
+
## Allowed inputs (the only sources used)
|
|
55
|
+
|
|
56
|
+
1. `docs/clean-room/specs/**`: `README.md`, `INVENTORY.md`, all
|
|
57
|
+
`wave-3/*.md` (63 specs; `wave-3/data-source-node.md` only as history,
|
|
58
|
+
superseded) and the canvas-related wave-4 specs: `run-view-modes.md`,
|
|
59
|
+
`rule-action-catalog.md`, `data-source-node.md`, `node-state-styles.md`,
|
|
60
|
+
`flow-palette-tokens.md` (and `floating-action-bar.md` for the dock item
|
|
61
|
+
shape only).
|
|
62
|
+
2. `docs/infra/design-direction-fakhir.md` in the thesis repository (visual
|
|
63
|
+
and interaction source of truth: `--fk-*` tokens, proof states and actor
|
|
64
|
+
language §2.11, canvas and provenance screens §3.10 and §3.13).
|
|
65
|
+
3. React Aria Components documentation and its published type definitions in
|
|
66
|
+
`node_modules/react-aria-components/dist/types` (Apache-2.0).
|
|
67
|
+
4. WAI-ARIA Authoring Practices Guide patterns (Toolbar, Tree View, Tabs,
|
|
68
|
+
Listbox, Combobox, Menu, Menu Button, Disclosure, Dialog, Radio Group,
|
|
69
|
+
Switch, Grid) and WCAG 2.2.
|
|
70
|
+
5. MDN (Pointer Events, ResizeObserver, CSS logical properties, `:dir()`,
|
|
71
|
+
cascade layers, `forced-colors`, `prefers-*` media, `line-clamp`,
|
|
72
|
+
`Intl.*`).
|
|
73
|
+
6. W3C PROV-O / PROV-DM (entity, activity, agent; `wasDerivedFrom`, `used`,
|
|
74
|
+
`wasGeneratedBy`, `wasAttributedTo`) for the provenance model.
|
|
75
|
+
7. Public documentation and MIT source of `@xyflow/react` were allowed; the
|
|
76
|
+
implementer did not need them (see `PROVENANCE.md`).
|
|
77
|
+
8. `@dagrejs/dagre` public API documentation (MIT) for `autoLayout`.
|
|
78
|
+
9. The public ICU MessageFormat syntax description, for the label templates.
|
|
79
|
+
10. The project's own canvas storyboards (rendered PNGs and their HTML
|
|
80
|
+
sources: F2, Q2–Q6 for the flow editor; Proveniência, P2–P6 for
|
|
81
|
+
provenance), authored for this project and supplied by the coordinator
|
|
82
|
+
as the visual spec. Only measurements, colours and hierarchy were taken
|
|
83
|
+
from them; no code was copied (they are static inline-styled mocks).
|
|
84
|
+
|
|
85
|
+
## Process
|
|
86
|
+
|
|
87
|
+
1. Foundations first, by the coordinating implementer: graph model and pure
|
|
88
|
+
geometry, `autoLayout`, the node kind catalog with palette tokens and node
|
|
89
|
+
state attributes, the per-editor state store and dialog stack, the canvas
|
|
90
|
+
surface, `GraphNodeCard`, dock-ready canvas tools, locale-aware labels
|
|
91
|
+
(en, pt-BR, es) with an ICU subset, and right-to-left support.
|
|
92
|
+
2. Eight sub-sessions implemented the component groups in parallel, each only
|
|
93
|
+
inside its own folders, against written contracts: provenance viewer (G1),
|
|
94
|
+
node kinds, ports and connectors (G2), editor and chrome (G3), run views
|
|
95
|
+
and trace (G4), expressions and rule forms (G5a), node forms (G5b),
|
|
96
|
+
dialogs and agent editors (G6a), assistant and report view (G6b).
|
|
97
|
+
3. The coordinating implementer integrated the groups, wrote the gallery,
|
|
98
|
+
and ran build, typecheck, tests, guardrails and the gallery build.
|
|
99
|
+
4. Every acceptance test of every spec became an automated test (Testing
|
|
100
|
+
Library + user-event) with an axe-core check; facts jsdom cannot compute
|
|
101
|
+
(hit areas, reduced motion, forced colours) are asserted on stylesheets.
|
|
102
|
+
5. Guardrails `check:no-tailwind` and `check:provenance` scan this package.
|
|
103
|
+
The similarity audit against the fork is run by the coordinator (see
|
|
104
|
+
`tools/provenance/README.md`).
|
|
105
|
+
|
|
106
|
+
## Statement
|
|
107
|
+
|
|
108
|
+
To the best of the implementer's knowledge, no code, markup, class string,
|
|
109
|
+
style value, comment or documentation wording from the fork or from any
|
|
110
|
+
commercial template entered this package.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Provenance
|
|
2
|
+
|
|
3
|
+
> **Rename note (2026-09-26).** The repository is now Tympan, an
|
|
4
|
+
> Astrlabe-family component published by Datatech. `packages/ui` is
|
|
5
|
+
> `@datatechsolutions/tympan` (called `@fakhir/ui` in this record, before
|
|
6
|
+
> that `@fakhir/design-system`), `packages/flow` is
|
|
7
|
+
> `@datatechsolutions/tympan-flow` (here `@fakhir/flow`, before that
|
|
8
|
+
> `@fakhir/flow-canvas`) and `packages/tokens` is
|
|
9
|
+
> `@datatechsolutions/tympan-tokens` (here `@fakhir/tokens`). The `fk-` class
|
|
10
|
+
> and `--fk-` custom-property prefix and the `data-fk-*` attributes named here
|
|
11
|
+
> are now `ty-`, `--ty-` and `data-ty-*`; `FakhirProvider` is `TympanProvider`;
|
|
12
|
+
> the Fakhir look is the `fakhir` theme preset. This record is otherwise kept
|
|
13
|
+
> as written.
|
|
14
|
+
|
|
15
|
+
> **Merge note (2026-09-26).** `packages/flow`
|
|
16
|
+
> (`@datatechsolutions/tympan-flow`) was later folded into `packages/ui`: its
|
|
17
|
+
> sources are in `packages/ui/src/flow` and it ships as the
|
|
18
|
+
> `@datatechsolutions/tympan/flow` subpath with the
|
|
19
|
+
> `@datatechsolutions/tympan/flow.css` stylesheet. Paths under
|
|
20
|
+
> `packages/flow` named here are now under `packages/ui/src/flow`.
|
|
21
|
+
|
|
22
|
+
Author: Natalia Mesquita. Per component: the spec it implements, the sources
|
|
23
|
+
used, and the decisions taken where the spec left room. Specs live in
|
|
24
|
+
`docs/clean-room/specs/`; "DD" is the design direction
|
|
25
|
+
(`docs/infra/design-direction-fakhir.md`); RAC is React Aria Components (used
|
|
26
|
+
from its documentation and published type definitions); APG is the WAI-ARIA
|
|
27
|
+
Authoring Practices Guide. No fork or commercial template material was used
|
|
28
|
+
for any row. Every test file includes axe-core checks and stylesheet
|
|
29
|
+
assertions for reduced motion and forced colours where the component moves or
|
|
30
|
+
draws state.
|
|
31
|
+
|
|
32
|
+
## Foundations (coordinating implementer)
|
|
33
|
+
|
|
34
|
+
| Part | Spec | Sources | Decisions |
|
|
35
|
+
|---|---|---|---|
|
|
36
|
+
| Graph model, `topologicalOrder`, `layerIndex`, `withinHops` | none (infrastructure) | Kahn ordering, longest-path layering | Stable tie-break by input order; cycles appended |
|
|
37
|
+
| Geometry (`rect`, `viewport`, `curve`, `guides`, `arrange`) | wave-3 alignment-guides, selection-arrange (arithmetic) | Bernstein cubic, ray/box intersection | Own zoom ladder (0.2–2.5); "centre horizontally" shares x |
|
|
38
|
+
| `autoLayout` | wave-3/auto-layout | @dagrejs/dagre (MIT) | Rank gap 64, sibling 32, margin 24 (§2.1); `right-left` rank direction for RTL |
|
|
39
|
+
| NodeKindCatalog, icon registry, RenderCatalog | wave-3/node-kind-catalog | lucide icons (§4.4) | Picker kinds (agent, rule, datasource) have no default config |
|
|
40
|
+
| FlowPaletteTokens (`kindTone`, `kindTokens`, `connectorTokens`) | wave-4/flow-palette-tokens | DD §2.3; WCAG contrast (static test) | Resting connector uses `--fk-input` (≥ 3:1) instead of `--fk-line-strong` (≈ 2:1), per WCAG 1.4.11 |
|
|
41
|
+
| NodeStateStyles (`nodeStateAttributes`, frame CSS) | wave-4/node-state-styles | DD §2.6, §2.11, §3.13 | Selection ring outside, run ring inside; proof state as border line style |
|
|
42
|
+
| FlowEditorState, dialog stack | wave-3/flow-editor-state | own minimal external store + `useSyncExternalStore` | One store per provider; paste cascades via the clipboard |
|
|
43
|
+
| CanvasSurface | wave-3/flow-editor, flow-preview (surface parts) | Pointer Events, ResizeObserver (MDN) | Own engine instead of @xyflow/react: DOM reading order, jsdom-testable geometry, logical RTL port sides; `minFitZoom` keeps text readable |
|
|
44
|
+
| ConnectionPreviewLine | wave-3/connection-preview-line | — | Not-allowed glyph beside the pointer end |
|
|
45
|
+
| GraphNodeCard | wave-3/graph-node-card | RAC Button, TextField; APG Button | Title button stretched over the card; siblings above it; clamps by lines |
|
|
46
|
+
| Canvas tools, CanvasToolbar, CanvasNodeSearch | brief (dock toolbar); wave-4/floating-action-bar (item shape) | RAC Toolbar, ToggleButton, Autocomplete, SearchField, ListBox; APG Toolbar | Tools are data so the DS dock can render them; `aria-keyshortcuts` set through a ref (RAC does not forward it) |
|
|
47
|
+
| Labels, `FlowMessagesProvider`, ICU subset, `useFlowLocale` | user requirement (i18n) | RAC `useLocale`; ICU syntax; `Intl.PluralRules` | en complete; pt-BR and es shipped; host catalogue per component key |
|
|
48
|
+
| SectionedModal, DockedPanel, ConfirmProvider (internal) | stand-ins for wave-2 SectionedModal and ConfirmService | DS ModalDialog, Tabs, Button | Replace with the DS components when wave 2 lands |
|
|
49
|
+
|
|
50
|
+
## Components by group
|
|
51
|
+
|
|
52
|
+
| Group | Components (spec) | Tests | Sources | Decisions |
|
|
53
|
+
|---|---|---|---|---|
|
|
54
|
+
| Provenance | ProvenanceGraph (question bar and five views), ProvenanceTree, ProvenanceInspector, ProvenanceFilters, ProvenanceLegend, ProvenanceNode, HashCheck, model helpers (`provenanceView`, `proofPath`, `bandLayout`, `bandGeometryFrom`) (no spec; brief priority 1 and the author's storyboards) | 44 | W3C PROV-O/PROV-DM; DD §2.11, §3.7, §3.13; RAC ComboBox, Tree, Popover; APG Combobox, Tree View | Bands stacked top to bottom in research order, only bands with items; proof path down column 0, off-path dimmed with the word "off the proof path", focus halo, "only the proof path" hides the rest; relation shown by line style (derived solid, used dashed, attributed dotted, generated dash-dot) with the word in the legend, inspector and tree, not on the line (it covered cards between close bands); arrows point back to origins as in PROV diagrams; band sizes read from `--fk-flow-*` tokens; steps back and forward are separate; tree is the default below 1024 px and the inspector opens on selection there; Enter in the tree shows the node in the graph |
|
|
55
|
+
| Provenance side views | ProvenanceTimeline, ProvenanceCertificate, EditionCompare, NumberTrace (storyboards; types in `proofTypes.ts`) | 19 | RAC Tree; DS ActorChip, ProofBadge, SegmentedControl; APG Tree View, Radio Group, Disclosure | Timeline: one lane per actor, close events stacked in rows, axis inset so no event hangs over an edge; certificate states the verifier is deterministic and uses no language model; comparison marks changes by icon, word and border style and shows before/after cards; number trace opens a non-modal region and returns focus to the number |
|
|
56
|
+
| Nodes | GenericNode, AgentNode, RuleNode, NoteNode, GroupNode, DataSourceNode (wave-4), NodeRunIndicator, ConnectionPorts, AgentIdentity, AlignmentGuides, DecisionNode (B-002) | 48 + 10 | RAC Button, Toolbar, Switch, TextField, ComboBox; DD §2.3, §2.11 | Agent avatar is a geometric mark from a hash of the name (no external service); source marks from a local registry with a database glyph fallback, dialect always text; decision probabilities as text plus bar, "needs review" word |
|
|
57
|
+
| Connectors | ConditionalConnector, ConnectorInsertMenu, `splitConnector`, Connect to command | 18 | RAC Button, Autocomplete, ListBox, Popover; DS Drawer; APG Combobox | Branch word is the focusable handle (Delete removes, Enter opens insert); true solid, false dashed, loop dotted; bottom drawer below 640 px |
|
|
58
|
+
| Editor | FlowEditor, FlowEditorProvider, AutosaveController, EditorShortcuts, SelectionArrange, CanvasContextMenus, CanvasCommandBar, NodePalette, FlowOutline, FlowPreview, FlowSwitcherBar, SaveStatus, RunControls | 19 + 42 | DS ActionMenu; RAC Toolbar, Popover, GridList (drag and drop), Disclosure, SearchField; APG Toolbar, Menu, Dialog | Shortcuts listen in the capture phase scoped to the canvas; Escape clears then leaves to the toolbar; the L key is not implemented (auto-layout is a tool); step list as keyboard alternative, open by default below 1024 px |
|
|
59
|
+
| Runs | useFlowExecution, applyRunEvent, useRunProjection, RunPanel, RunPreviewPanel, RunDrawer, RunViews (wave-4 run-view-modes), RunInputDialog, RunReplayDialog, RunRewindDialog, lineage and diff helpers, ExecutionTimeline, VariableInspector, VersionHistoryPanel | 43 | RAC Tabs, ListBox, Disclosure, Dialog; DS ActorChip, StatusPill; DD §2.8, §3.10 | Default timeline selection is the first failed step; a failed run forces the drawer on the failing node; the version panel does not confirm restores (host does) |
|
|
60
|
+
| Expressions | ExpressionBuilder, ExpressionField, TraceTree (+ `runDryRun`), ComputeNodeForm, SimulationNodeForm, RuleEditor (+ condition and action builders, `normalizeRuleCondition`, `defaultRule`), rule action catalog (wave-4), RuleNodeForm | 14 + 9 + 33 | RAC Tree, NumberField, Disclosure, RadioGroup; APG Tree View, Radio Group, Disclosure | Operation vocabulary comes from a host catalog; simulation wraps bare values in `coalesce`; legacy rule shapes are this package's own reading and must be checked against the engine normaliser; native date-time input until the DS has a DatePicker |
|
|
61
|
+
| Forms | SchemaConfigForm (+ NodeFormFooter), VariableListEditor, ToolServerListField, StartNodeForm, AgentNodeForm, DataSourceNodeForm, ReportOutputNodeForm, GroupNodeForm, OutputSchemaBuilder, DecisionNodeForm (B-002) | 71 | RAC RadioGroup, ListBox; DS fields, CheckboxGroup, Switch; APG Tabs, Radio Group, Listbox | No vendor logos; `maxLimit` prop for the row limit; decision needs two unique options and an input reference |
|
|
62
|
+
| Dialogs | NodeConfigDialog, FlowSettingsDialog, DefinitionExportDialog, DefinitionImportDialog | 40 | RAC DropZone, FileTrigger, Modal, Dialog, Switch; APG Dialog | Export file name keeps Unicode letters; copy failure is reported (not claimed as success) |
|
|
63
|
+
| Agents | AgentEditorDialog, AgentCreationWizard (with local StepList, ChoiceTiles, TagInput) | 18 | RAC Slider, ToggleButtonGroup, Tabs (vertical), RadioGroup, Disclosure; APG Dialog, Tabs, Slider, Radio Group | Capability tiers and presets come from props; slider value text names the tier; wizard Enter advances only outside fields |
|
|
64
|
+
| Assistant and report | useAssistantSession, AssistantConversation, MarkdownView, AssistantVisualBlock (+ `parseAssistantVisual`, `envelopeToReport`), ConversationShell (+ `groupThreadsByDay`, ThreadMetaLine), ReportView | 39 | RAC TextField, ToggleButton; DS Drawer, Skeleton; APG log region | Composer stays editable while busy; pt, en and es payload key aliases; currency only when the host gives a code; date groups by calendar day in a time zone |
|
|
65
|
+
|
|
66
|
+
Total: 508 tests in 36 files (Vitest count; the per-group numbers above count `it` blocks).
|
|
67
|
+
|
|
68
|
+
## Similarity rework
|
|
69
|
+
|
|
70
|
+
After the coordinator's outside audit, 23 files were restructured with
|
|
71
|
+
their own vocabulary and decomposition (reducers and lookup tables instead
|
|
72
|
+
of chained state and switches, extracted pure helpers and subcomponents):
|
|
73
|
+
run lineage, run data, run types, the run input, replay and rewind dialogs,
|
|
74
|
+
the number input, the assistant hook and conversation shell, announcer,
|
|
75
|
+
confirm, render catalog, schema and start forms, variable list, agent
|
|
76
|
+
parts, expression builder, compute form, trace client, flow settings,
|
|
77
|
+
autosave, auto-layout and the provenance legend. Behaviour and tests were
|
|
78
|
+
kept.
|
|
79
|
+
|
|
80
|
+
## Ambiguities resolved (summary)
|
|
81
|
+
|
|
82
|
+
- **Canvas library.** Own pointer-event surface instead of @xyflow/react,
|
|
83
|
+
which the brief allowed and which was not used: the canvas needs its node
|
|
84
|
+
boxes in reading order in the DOM (Tab order and the list/tree alternative
|
|
85
|
+
follow the picture), deterministic geometry that jsdom can test without
|
|
86
|
+
layout, logical (RTL-aware) port sides, and an internal structure of its
|
|
87
|
+
own. A small pointer-event surface (`src/surface/`) covers pan, zoom, pinch,
|
|
88
|
+
marquee, node drag and connection drawing. (Moved here from
|
|
89
|
+
`THIRD_PARTY_NOTICES.md` on 2026-09-26.)
|
|
90
|
+
- **Right to left.** Canvas geometry keeps a physical origin; logical port
|
|
91
|
+
sides and the horizontal rank direction mirror; everything else uses
|
|
92
|
+
logical CSS. Identifiers, hashes and code stay left to right.
|
|
93
|
+
- **Languages.** Strings ship in en, pt-BR and es; other locales (for example
|
|
94
|
+
ar and ja in the gallery) get English labels until the host supplies a
|
|
95
|
+
catalogue through `FlowMessagesProvider`, while data, numbers and dates
|
|
96
|
+
already follow the locale.
|
|
97
|
+
- **Connector contrast.** `--fk-input` for resting connectors (≥ 3:1).
|
|
98
|
+
|
|
99
|
+
## Canvas tokens (upstreamed into @fakhir/tokens)
|
|
100
|
+
|
|
101
|
+
The `--fk-flow-*` tokens first lived in this package's `src/tokens.css`. They
|
|
102
|
+
now live in `@fakhir/tokens` (`src/flow.ts`, DTCG aliases of theme roles in
|
|
103
|
+
`dist/dtcg/flow.tokens.json`, emitted into `tokens.css`): the kind tones
|
|
104
|
+
`--fk-flow-tone-{categorical-1…8,neutral}` with `-ink`, `-soft`, `-text` and
|
|
105
|
+
the `[data-tone]` mapping; connectors (`--fk-flow-connector`, `-active`,
|
|
106
|
+
`-true`, `-false`, `-rule`, `-width`, `-width-active`); node frame
|
|
107
|
+
(`--fk-flow-node-border`, `-border-hover`, `-surface`, `-radius`) and rings
|
|
108
|
+
(`--fk-flow-ring-selected`, `-running`, `-succeeded`, `-failed`); canvas
|
|
109
|
+
(`--fk-flow-plane`, `--fk-flow-grid-dot`, `--fk-flow-guide`,
|
|
110
|
+
`--fk-flow-marquee`); provenance bands (`--fk-flow-band` 96px,
|
|
111
|
+
`--fk-flow-band-label` 130px, `--fk-flow-node-h` 72px, `--fk-flow-node-w`
|
|
112
|
+
236px, `--fk-flow-col-gap` 56px); research steps (`--fk-flow-step-w` 250px,
|
|
113
|
+
`--fk-flow-step-h` 86px) and data shapes (`--fk-flow-shape-records` accent,
|
|
114
|
+
`-table` categorical-1, `-number` warning, `-chart` categorical-8, `-decision`
|
|
115
|
+
danger). Values are unchanged; this package only reads them.
|
|
116
|
+
|
|
117
|
+
## Gallery data
|
|
118
|
+
|
|
119
|
+
All gallery data is fictional and labelled "Dados de exemplo / Sample data":
|
|
120
|
+
the Vila Aurora urban air-quality study of Example Lab (Laboratório
|
|
121
|
+
Exemplo), with invented monitoring stations (Centro, Harbour, Park, North,
|
|
122
|
+
Riverside), readings (for example retrieval `rd-0714`), the assertion
|
|
123
|
+
`air.pm25_days_above_limit = 12`, record `station-centro-2026`, edition
|
|
124
|
+
2026-09 (a manifest of 312 hashes) and people with `@example.org` addresses.
|
|
125
|
+
Form and expression specimens use neutral placeholders (Fonte de dados A,
|
|
126
|
+
Opção A, [hash]). The provenance items carry no proof state ("no proof"),
|
|
127
|
+
because the verifier (G7a) does not exist yet.
|
|
128
|
+
|
|
129
|
+
## Similarity rework, round 2
|
|
130
|
+
|
|
131
|
+
`useAssistantChat` became `useAssistantSession` with a new vocabulary
|
|
132
|
+
(renames listed at the end of `wave-3/assistant-chat.md` and
|
|
133
|
+
`wave-3/conversation-shell.md`); ConversationShell was split into
|
|
134
|
+
`threadDays`, `ThreadHistory`, `LiveCanvasPanel` and a layout shell; the
|
|
135
|
+
rewind dialog moved its logic to `rewindPlan.ts`; ExpressionBuilder moved its
|
|
136
|
+
levels into `expressions/builder/`; ComputeNodeForm into `computeDraft`,
|
|
137
|
+
`ComputeInsertPanel` and `ComputeTrial`; VariableListEditor into
|
|
138
|
+
`nameListModel` and a parts table. Behaviour and tests unchanged.
|
|
139
|
+
|
|
140
|
+
## Storyboard alignment (DAG editor)
|
|
141
|
+
|
|
142
|
+
The canvas storyboards (our own designs F2, Q2–Q6) are the visual spec.
|
|
143
|
+
The gallery renders the editor inside the design system's research shell
|
|
144
|
+
(`gallery/src/shell/ResearchShell.tsx`: `AppFrame layout="rail"`, the
|
|
145
|
+
editorial `PageHeader` and a `FloatingActionBar` dock fed by
|
|
146
|
+
`dockItemsFromCanvasTools`; the first versions used a stand-in drawn before
|
|
147
|
+
the rail layout existed) at 1440×960,
|
|
148
|
+
with the storyboard states reachable as `#/editor?state=canvas|picker|drag|
|
|
149
|
+
search|mismatch|list|selected` (`&lang=` for the locale). Measurements come
|
|
150
|
+
from the storyboards' inline styles. Side-by-side comparisons (reference |
|
|
151
|
+
implementation) were made for each state.
|
|
152
|
+
|
|
153
|
+
Deliberate differences:
|
|
154
|
+
|
|
155
|
+
- The whole flow is fitted (about 85% zoom) instead of clipping the right
|
|
156
|
+
branch at the canvas edge, and input chips sit on a 14px top padding so they
|
|
157
|
+
no longer overlap the kind label (both known issues of the storyboards).
|
|
158
|
+
- The status bar for a mismatched link is laid out as one sentence with the
|
|
159
|
+
shape chips and the repair button, instead of the storyboard's overlapping
|
|
160
|
+
columns; the chart branch is also flagged when it receives the wrong shape.
|
|
161
|
+
- A visible "Dados de exemplo" tag sits in the header actions (project rule:
|
|
162
|
+
no invented research data); "Filtrar: tipo = case" is shown as "Filtrar"
|
|
163
|
+
(the filter condition is not a known value).
|
|
164
|
+
- Interaction mocks are shown only while interacting: the "+" on links
|
|
165
|
+
appears on hover or focus, and the dragged palette entry is highlighted by
|
|
166
|
+
the browser drag, not in a still frame.
|
|
167
|
+
- The side panel's selects use the design system's trigger as is (40px on
|
|
168
|
+
desktop, 44px below 1024px, value centred), fixed upstream.
|
|
169
|
+
- Picker descriptions reuse the palette's (slightly longer) descriptions.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# @datatechsolutions/tympan/flow
|
|
2
|
+
|
|
3
|
+
Tympan's accessible React canvases for research platforms: a **W3C PROV
|
|
4
|
+
provenance graph viewer** with a synced keyboard list, a **DAG workflow
|
|
5
|
+
editor** for analyses (including a generic decision step), run inspection
|
|
6
|
+
(panel and drawer, timeline, trace, replay and rewind), and the forms and
|
|
7
|
+
dialogs around them. Built on the `@datatechsolutions/tympan` components and
|
|
8
|
+
React Aria Components, styled with plain CSS in `@layer tympan.components`.
|
|
9
|
+
Part of `@datatechsolutions/tympan` (this folder was the separate
|
|
10
|
+
`@datatechsolutions/tympan-flow` package until 2026-09-26). Licence:
|
|
11
|
+
FSL-1.1-ALv2 (Functional Source License, Version 1.1, Apache 2.0 Future
|
|
12
|
+
License), Copyright 2026 Natalia Mesquita; see `LICENSE` of the package.
|
|
13
|
+
|
|
14
|
+
Built, tested and shown with the package:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
npm run build -w @datatechsolutions/tympan # dist/flow.js, flow.d.ts, flow.css (next to index.js, styles.css)
|
|
18
|
+
npm test -w @datatechsolutions/tympan # vitest + Testing Library + axe-core
|
|
19
|
+
npm run gallery -w @datatechsolutions/tympan # http://localhost:3310/#/flow/provenance (also #/flow/editor, #/flow/components)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
`@dagrejs/dagre` (behind `autoLayout`) is an optional peer dependency of
|
|
25
|
+
`@datatechsolutions/tympan`: install it when you use this entry.
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
import '@datatechsolutions/tympan/styles.css'
|
|
29
|
+
import '@datatechsolutions/tympan/flow.css'
|
|
30
|
+
import { TympanProvider } from '@datatechsolutions/tympan'
|
|
31
|
+
import { ProvenanceGraph, FlowEditor } from '@datatechsolutions/tympan/flow'
|
|
32
|
+
|
|
33
|
+
<TympanProvider locale="pt-BR">
|
|
34
|
+
<ProvenanceGraph items={items} statements={statements} defaultFocusId="as-reg-position" defaultHops={3} />
|
|
35
|
+
</TympanProvider>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## What is inside
|
|
39
|
+
|
|
40
|
+
- **Provenance** (`ProvenanceGraph`, `ProvenanceTree`, `ProvenanceInspector`,
|
|
41
|
+
`ProvenanceFilters`, `ProvenanceLegend`, model helpers): query → retrieval →
|
|
42
|
+
source → assertion → record → analysis/edition → manuscript sentence, with
|
|
43
|
+
`wasDerivedFrom`, `used`, `wasGeneratedBy` and `wasAttributedTo` relations;
|
|
44
|
+
focus N hops backward/forward/both; filters by kind, actor and proof state;
|
|
45
|
+
proof-state border styles and the person/agent/system actor language of the
|
|
46
|
+
design direction (§2.11); an APG tree view synced with the canvas, so the
|
|
47
|
+
canvas is never the only way in.
|
|
48
|
+
- **Research steps** (`StepPalette`, `AddStepPicker`, `StepCard`,
|
|
49
|
+
`IssueBar`, `FlowSidePanel`, `StepListView`, `ShapeChip`, `stepToolItems`,
|
|
50
|
+
typed wiring helpers): steps shelved by research verb (input, prepare,
|
|
51
|
+
analyse, decide, output; engine primitives on a folded "advanced" shelf),
|
|
52
|
+
each with typed ports (records, table, number, chart, decision). A step is
|
|
53
|
+
added after a step ("+" under it or the A key), inside a link ("+" on the
|
|
54
|
+
link), from the palette (tap, Enter or drag) or from the dock; every way
|
|
55
|
+
links and lays the flow out. Mismatched links are marked on the step and in
|
|
56
|
+
a status bar with a one-press repair (swap the step, insert a bridge, or
|
|
57
|
+
unlink). The list view is the keyboard view of the canvas.
|
|
58
|
+
- **Editor** (`FlowEditor`, `FlowEditorProvider`, `AutosaveController`,
|
|
59
|
+
`CanvasCommandBar`, `CanvasContextMenus`, `NodePalette`, `FlowOutline`,
|
|
60
|
+
`FlowPreview`, `FlowSwitcherBar`, `SaveStatus`, `RunControls`, editor
|
|
61
|
+
shortcuts, selection arrange, alignment guides).
|
|
62
|
+
- **Nodes and connectors** (`GraphNodeCard`, `GenericNode`, `AgentNode`,
|
|
63
|
+
`RuleNode`, `NoteNode`, `GroupNode`, `DataSourceNode`, `DecisionNode`,
|
|
64
|
+
`NodeRunIndicator`, `ConnectionPorts`, `ConditionalConnector`,
|
|
65
|
+
`ConnectorInsertMenu`, `ConnectionPreviewLine`, `AgentIdentity`).
|
|
66
|
+
- **Runs** (`RunViews` with `RunPreviewPanel` and `RunDrawer`, `RunPanel`,
|
|
67
|
+
`ExecutionTimeline`, `VariableInspector`, `VersionHistoryPanel`,
|
|
68
|
+
`RunInputDialog`, `RunReplayDialog`, `RunRewindDialog`, run state and
|
|
69
|
+
lineage/diff helpers).
|
|
70
|
+
- **Forms and dialogs** (schema-driven and per-kind node forms, the decision
|
|
71
|
+
form, `ExpressionBuilder`, `TraceTree`, `RuleEditor` with the rule action
|
|
72
|
+
catalog, `NodeConfigDialog`, `FlowSettingsDialog`, definition export and
|
|
73
|
+
import, `AgentEditorDialog`, `AgentCreationWizard`).
|
|
74
|
+
- **Assistant** (`useAssistantSession`, `AssistantConversation`,
|
|
75
|
+
`AssistantVisualBlock`, `ConversationShell`, `ReportView`).
|
|
76
|
+
- **Foundations**: `CanvasSurface` (pan, zoom, pinch, marquee, node drag,
|
|
77
|
+
connection drawing, overview map), `autoLayout` (dagre), `NodeKindCatalog`,
|
|
78
|
+
`FlowPaletteTokens` (`kindTone`, `kindTokens`, `connectorTokens`),
|
|
79
|
+
`nodeStateAttributes`, `createFlowEditorStore` and the dialog stack.
|
|
80
|
+
|
|
81
|
+
## Canvas tools in the bottom dock
|
|
82
|
+
|
|
83
|
+
`canvasToolItems({ zoom, mode, onModeChange, onZoomIn, onZoomOut,
|
|
84
|
+
onZoomReset, onFit, onAutoLayout, onToggleListView, onSearch, locale })`
|
|
85
|
+
returns the canvas tools as dock items (select, pan, zoom out, zoom level as a
|
|
86
|
+
percentage, zoom in, fit, auto-layout, list view, find a node), each with a
|
|
87
|
+
label, icon, toggle state and `aria-keyshortcuts`. Hand them to the design
|
|
88
|
+
system's bottom dock, or render them with `CanvasToolbar`. The flow editor
|
|
89
|
+
uses `stepToolItems` instead: select, move | add a step (A), rearrange, fit |
|
|
90
|
+
show as list, find a step; `FlowEditor` passes them to `renderTools`, so a host
|
|
91
|
+
can place the dock at sheet level.
|
|
92
|
+
|
|
93
|
+
## Languages and direction
|
|
94
|
+
|
|
95
|
+
Every visible string is a label. Components ship English, Brazilian
|
|
96
|
+
Portuguese and Spanish bundles (`defineLabels`), resolved from the React Aria
|
|
97
|
+
locale that `TympanProvider` sets; hosts add any language through
|
|
98
|
+
`<FlowMessagesProvider messages={{ ComponentKey: {...} }}>` or per-component
|
|
99
|
+
`labels`. Templates use an ICU MessageFormat subset (plural, select, number).
|
|
100
|
+
Numbers, dates and durations go through `Intl` with the provider locale.
|
|
101
|
+
Styles use logical properties only; in right-to-left locales panels and
|
|
102
|
+
toolbars mirror, directional glyphs flip, logical port sides mirror and a
|
|
103
|
+
horizontal auto-layout runs right to left (each canvas has a `keepLtr` option).
|
|
104
|
+
Node titles clamp by lines, never by characters.
|
|
105
|
+
|
|
106
|
+
## Accessibility
|
|
107
|
+
|
|
108
|
+
Canvases are labelled groups whose nodes sit in reading order in the DOM;
|
|
109
|
+
every operation has a keyboard path (list or tree alternative, "Connect to…",
|
|
110
|
+
context menus by Shift+F10); Escape leaves the canvas; colour is never the
|
|
111
|
+
only carrier (words, icons, line styles); 44 px hit areas; reduced motion,
|
|
112
|
+
reduced transparency and forced colours are handled in every stylesheet.
|
|
113
|
+
|
|
114
|
+
## Records
|
|
115
|
+
|
|
116
|
+
`CLEAN-ROOM.md` (process and inputs), `PROVENANCE.md` (per component) in
|
|
117
|
+
this folder; `THIRD_PARTY_NOTICES.md` and `LICENSE` of the package.
|