@12-apps/ui 6.22.0 → 6.23.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/NATIVE.md +1 -1
- package/components-catalog.md +7 -0
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
- package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +1 -1
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +1 -1
- package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
- package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
- package/dist/_internal/components/data-display/Chart/SpecChart.js +5 -5
- package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
- package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
- package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +1 -1
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +26 -26
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +30 -30
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +10 -10
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +22 -22
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +10 -10
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +3 -3
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -3
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +31 -0
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +23 -0
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +57 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.helpers.js +14 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.helpers.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.hooks.js +9 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.hooks.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +46 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.types.js +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetMap.types.js.map +1 -0
- package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +14 -0
- package/dist/_internal/components/data-display/FleetMap/FleetRoster.js.map +1 -0
- package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +6 -6
- package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
- package/dist/_internal/components/data-display/Sheet/Sheet.js +3 -3
- package/dist/_internal/components/data-display/Table/Table.js +3 -3
- package/dist/_internal/components/data-display/index.js +82 -62
- package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
- package/dist/_internal/components/feedback/StackedModal/StackedModal.js +2 -2
- package/dist/_internal/components/feedback/index.js +14 -14
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +5 -5
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +2 -2
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +2 -2
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +4 -4
- package/dist/_internal/components/form/Command/Command.js +2 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +3 -3
- package/dist/_internal/components/form/PhoneInput/PhoneInput.hooks.js +2 -2
- package/dist/_internal/components/form/PhoneInput/PhoneInput.js +3 -3
- package/dist/_internal/components/form/index.js +30 -30
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +5 -5
- package/dist/_internal/components/form/total-form/Fields/index.js +9 -9
- package/dist/_internal/components/index.js +152 -133
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +2 -2
- package/dist/_internal/components/layout/index.js +20 -20
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
- package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
- package/dist/_internal/components/navigation/index.js +12 -12
- package/dist/_internal/components/utility/index.js +4 -4
- package/dist/_internal/pt-BR.data-display.js +2 -2
- package/dist/_internal/user-avatar/user-avatar.js +3 -3
- package/dist/charts.js +5 -5
- package/dist/chunk-2RQINU5T.js +41 -0
- package/dist/chunk-2RQINU5T.js.map +1 -0
- package/dist/{chunk-VLHGBFR6.js → chunk-2UGJIKVA.js} +2 -2
- package/dist/{chunk-WMALDOF5.js → chunk-4G3FGCWX.js} +4 -4
- package/dist/{chunk-ZKR5B6YJ.js → chunk-4LRFGB3K.js} +2 -2
- package/dist/{chunk-ZOUWHGV3.js → chunk-4MGFUPQT.js} +4 -4
- package/dist/{chunk-VQAM2XZV.js → chunk-4XZXLB4I.js} +3 -3
- package/dist/chunk-5V4UPOWK.js +36 -0
- package/dist/chunk-5V4UPOWK.js.map +1 -0
- package/dist/{chunk-VIK3HAUQ.js → chunk-73NJCGQG.js} +2 -2
- package/dist/{chunk-PFV6RL4Q.js → chunk-ACFGEZ4Q.js} +3 -3
- package/dist/{chunk-U2YJCNRU.js → chunk-AJGYHDA5.js} +4 -4
- package/dist/{chunk-HKV4MQ2W.js → chunk-BLBOYCOV.js} +5 -5
- package/dist/{chunk-QZBUGUOY.js → chunk-BZTFPSWT.js} +4 -4
- package/dist/{chunk-7TZ6OC5T.js → chunk-CBTY36TU.js} +2 -2
- package/dist/chunk-CDCTLPMD.js +1 -0
- package/dist/chunk-CDCTLPMD.js.map +1 -0
- package/dist/chunk-CF3FAAPC.js +79 -0
- package/dist/chunk-CF3FAAPC.js.map +1 -0
- package/dist/{chunk-PMS3H3OO.js → chunk-DF2FFYZ7.js} +4 -4
- package/dist/{chunk-FPWB5ILF.js → chunk-DRHIIUDO.js} +5 -5
- package/dist/{chunk-WLQTHPMX.js → chunk-EJQW2IYW.js} +2 -2
- package/dist/{chunk-XFUNJYFT.js → chunk-EPNUVSNK.js} +7 -7
- package/dist/{chunk-MSUSZLRE.js → chunk-EWT3WMVY.js} +5 -5
- package/dist/chunk-F7VBGS4C.js +64 -0
- package/dist/chunk-F7VBGS4C.js.map +1 -0
- package/dist/{chunk-Q75SJ35X.js → chunk-GMTM6EN7.js} +3 -3
- package/dist/{chunk-6NZTYZP5.js → chunk-GVA5CYKP.js} +2 -2
- package/dist/{chunk-VR5HDUBK.js → chunk-HP2ODXNA.js} +2 -2
- package/dist/{chunk-7BYFC2MR.js → chunk-I7HYGIEJ.js} +6 -6
- package/dist/{chunk-UVGRRI7N.js → chunk-IPVYEPXO.js} +4 -4
- package/dist/{chunk-5ZTUP65G.js → chunk-JM64OEU6.js} +5 -5
- package/dist/{chunk-QFJRB27Q.js → chunk-KHWCX4LI.js} +2 -2
- package/dist/{chunk-TLMLEC4F.js → chunk-KW7H5O3K.js} +6 -6
- package/dist/{chunk-UU3QAKG6.js → chunk-L4U23SBX.js} +4 -4
- package/dist/chunk-MQNKRIGC.js +205 -0
- package/dist/chunk-MQNKRIGC.js.map +1 -0
- package/dist/{chunk-QWDEOITU.js → chunk-MYGNIFZC.js} +2 -2
- package/dist/{chunk-2MMEIN4T.js → chunk-N2TUX4A5.js} +4 -4
- package/dist/{chunk-KTK4A3IF.js → chunk-OIKQO73C.js} +7 -7
- package/dist/{chunk-REMK55JI.js → chunk-OLZTGVBT.js} +4 -4
- package/dist/{chunk-ZIYMBR7K.js → chunk-OTH7H3IP.js} +2 -2
- package/dist/{chunk-J4W4TQPC.js → chunk-QJRDDVZ2.js} +5 -5
- package/dist/{chunk-VNDOQEJ7.js → chunk-QRX5BYUQ.js} +4 -4
- package/dist/{chunk-XT7HMNBW.js → chunk-R6SNYC3D.js} +5 -5
- package/dist/{chunk-W2UTDN4T.js → chunk-RBGOGTT2.js} +4 -4
- package/dist/chunk-RQWZYD6H.js +1 -0
- package/dist/chunk-RQWZYD6H.js.map +1 -0
- package/dist/{chunk-EXJBPKGW.js → chunk-SHDIZSN5.js} +5 -5
- package/dist/{chunk-23FCBIUN.js → chunk-TNVO2DTB.js} +8 -8
- package/dist/{chunk-AGSBIUPV.js → chunk-TPLKJHNN.js} +4 -4
- package/dist/{chunk-U2AC4AQX.js → chunk-TU5EIKJA.js} +4 -4
- package/dist/chunk-TWQYDKCA.js +113 -0
- package/dist/chunk-TWQYDKCA.js.map +1 -0
- package/dist/{chunk-BGYLL467.js → chunk-TXHJX2NG.js} +4 -4
- package/dist/{chunk-E46PG577.js → chunk-URXT5TOY.js} +4 -4
- package/dist/{chunk-5NKUYCZD.js → chunk-VON4BFK4.js} +4 -4
- package/dist/{chunk-FL54G7PV.js → chunk-WIT3Y7JT.js} +2 -2
- package/dist/{chunk-DVUPIVI2.js → chunk-WQA4LIIK.js} +2 -2
- package/dist/{chunk-2UYR2OOE.js → chunk-YRUCIKPO.js} +4 -4
- package/dist/{chunk-QKIJ6YXZ.js → chunk-ZA4U5GDU.js} +4 -4
- package/dist/{chunk-OXQP3N6X.js → chunk-ZTZ6S5Q6.js} +4 -4
- package/dist/data-display/AsyncStateContainer.js +3 -3
- package/dist/data-display/Avatar.js +2 -2
- package/dist/data-display/CardKit.js +8 -8
- package/dist/data-display/Carousel.js +2 -2
- package/dist/data-display/Chart.js +5 -5
- package/dist/data-display/Chip.js +3 -3
- package/dist/data-display/DataGrid.js +1 -1
- package/dist/data-display/DataViews.js +33 -33
- package/dist/data-display/FleetMap.js +54 -0
- package/dist/data-display/FleetMap.js.map +1 -0
- package/dist/data-display/HoverCard.js +2 -2
- package/dist/data-display/Lightbox.js +2 -2
- package/dist/data-display/MapPreview.js +6 -6
- package/dist/data-display/Sheet.js +3 -3
- package/dist/data-display/Table.js +3 -3
- package/dist/feedback/ConfirmAction.js +3 -3
- package/dist/feedback/Modal.js +2 -2
- package/dist/feedback/StackedModal.js +2 -2
- package/dist/form/AddressAutocomplete.js +5 -5
- package/dist/form/CategorySelect.js +4 -4
- package/dist/form/Command.js +2 -2
- package/dist/form/DateRangePicker.js +5 -5
- package/dist/form/PhoneInput.js +3 -3
- package/dist/form/total-form.js +9 -9
- package/dist/layout/SettingsLayout.js +2 -2
- package/dist/locales.js +4 -4
- package/dist/navigation/AppHeader.js +6 -6
- package/dist/navigation/Pagination.js +2 -2
- package/dist/pt-BR.js +4 -4
- package/dist/types/components/data-display/FleetMap/FleetBody.d.ts +22 -0
- package/dist/types/components/data-display/FleetMap/FleetBody.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetCanvas.d.ts +50 -0
- package/dist/types/components/data-display/FleetMap/FleetCanvas.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.d.ts +32 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.fixtures.d.ts +23 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.fixtures.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.helpers.d.ts +45 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.helpers.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.hooks.d.ts +54 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.hooks.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.types.d.ts +145 -0
- package/dist/types/components/data-display/FleetMap/FleetMap.types.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/FleetRoster.d.ts +15 -0
- package/dist/types/components/data-display/FleetMap/FleetRoster.d.ts.map +1 -0
- package/dist/types/components/data-display/FleetMap/index.d.ts +5 -0
- package/dist/types/components/data-display/FleetMap/index.d.ts.map +1 -0
- package/dist/types/components/data-display/index.d.ts +1 -0
- package/dist/types/components/data-display/index.d.ts.map +1 -1
- package/dist/user-avatar.js +3 -3
- package/package.json +5 -1
- package/src/components/data-display/FleetMap/FleetBody.tsx +96 -0
- package/src/components/data-display/FleetMap/FleetCanvas.tsx +80 -0
- package/src/components/data-display/FleetMap/FleetMap.fixtures.ts +70 -0
- package/src/components/data-display/FleetMap/FleetMap.helpers.ts +85 -0
- package/src/components/data-display/FleetMap/FleetMap.hooks.ts +164 -0
- package/src/components/data-display/FleetMap/FleetMap.md +182 -0
- package/src/components/data-display/FleetMap/FleetMap.tsx +169 -0
- package/src/components/data-display/FleetMap/FleetMap.types.ts +148 -0
- package/src/components/data-display/FleetMap/FleetRoster.tsx +321 -0
- package/src/components/data-display/FleetMap/index.ts +9 -0
- package/src/components/data-display/FleetMap/tests.md +79 -0
- package/src/components/data-display/FleetMap/track.md +50 -0
- package/src/components/data-display/index.ts +1 -0
- package/src/components/feedback/ConfirmAction/ConfirmAction.md +10 -4
- package/dist/chunk-X3HL5C6H.js +0 -1
- /package/dist/{chunk-X3HL5C6H.js.map → _internal/components/data-display/FleetMap/FleetBody.js.map} +0 -0
- /package/dist/{chunk-VLHGBFR6.js.map → chunk-2UGJIKVA.js.map} +0 -0
- /package/dist/{chunk-WMALDOF5.js.map → chunk-4G3FGCWX.js.map} +0 -0
- /package/dist/{chunk-ZKR5B6YJ.js.map → chunk-4LRFGB3K.js.map} +0 -0
- /package/dist/{chunk-ZOUWHGV3.js.map → chunk-4MGFUPQT.js.map} +0 -0
- /package/dist/{chunk-VQAM2XZV.js.map → chunk-4XZXLB4I.js.map} +0 -0
- /package/dist/{chunk-VIK3HAUQ.js.map → chunk-73NJCGQG.js.map} +0 -0
- /package/dist/{chunk-PFV6RL4Q.js.map → chunk-ACFGEZ4Q.js.map} +0 -0
- /package/dist/{chunk-U2YJCNRU.js.map → chunk-AJGYHDA5.js.map} +0 -0
- /package/dist/{chunk-HKV4MQ2W.js.map → chunk-BLBOYCOV.js.map} +0 -0
- /package/dist/{chunk-QZBUGUOY.js.map → chunk-BZTFPSWT.js.map} +0 -0
- /package/dist/{chunk-7TZ6OC5T.js.map → chunk-CBTY36TU.js.map} +0 -0
- /package/dist/{chunk-PMS3H3OO.js.map → chunk-DF2FFYZ7.js.map} +0 -0
- /package/dist/{chunk-FPWB5ILF.js.map → chunk-DRHIIUDO.js.map} +0 -0
- /package/dist/{chunk-WLQTHPMX.js.map → chunk-EJQW2IYW.js.map} +0 -0
- /package/dist/{chunk-XFUNJYFT.js.map → chunk-EPNUVSNK.js.map} +0 -0
- /package/dist/{chunk-MSUSZLRE.js.map → chunk-EWT3WMVY.js.map} +0 -0
- /package/dist/{chunk-Q75SJ35X.js.map → chunk-GMTM6EN7.js.map} +0 -0
- /package/dist/{chunk-6NZTYZP5.js.map → chunk-GVA5CYKP.js.map} +0 -0
- /package/dist/{chunk-VR5HDUBK.js.map → chunk-HP2ODXNA.js.map} +0 -0
- /package/dist/{chunk-7BYFC2MR.js.map → chunk-I7HYGIEJ.js.map} +0 -0
- /package/dist/{chunk-UVGRRI7N.js.map → chunk-IPVYEPXO.js.map} +0 -0
- /package/dist/{chunk-5ZTUP65G.js.map → chunk-JM64OEU6.js.map} +0 -0
- /package/dist/{chunk-QFJRB27Q.js.map → chunk-KHWCX4LI.js.map} +0 -0
- /package/dist/{chunk-TLMLEC4F.js.map → chunk-KW7H5O3K.js.map} +0 -0
- /package/dist/{chunk-UU3QAKG6.js.map → chunk-L4U23SBX.js.map} +0 -0
- /package/dist/{chunk-QWDEOITU.js.map → chunk-MYGNIFZC.js.map} +0 -0
- /package/dist/{chunk-2MMEIN4T.js.map → chunk-N2TUX4A5.js.map} +0 -0
- /package/dist/{chunk-KTK4A3IF.js.map → chunk-OIKQO73C.js.map} +0 -0
- /package/dist/{chunk-REMK55JI.js.map → chunk-OLZTGVBT.js.map} +0 -0
- /package/dist/{chunk-ZIYMBR7K.js.map → chunk-OTH7H3IP.js.map} +0 -0
- /package/dist/{chunk-J4W4TQPC.js.map → chunk-QJRDDVZ2.js.map} +0 -0
- /package/dist/{chunk-VNDOQEJ7.js.map → chunk-QRX5BYUQ.js.map} +0 -0
- /package/dist/{chunk-XT7HMNBW.js.map → chunk-R6SNYC3D.js.map} +0 -0
- /package/dist/{chunk-W2UTDN4T.js.map → chunk-RBGOGTT2.js.map} +0 -0
- /package/dist/{chunk-EXJBPKGW.js.map → chunk-SHDIZSN5.js.map} +0 -0
- /package/dist/{chunk-23FCBIUN.js.map → chunk-TNVO2DTB.js.map} +0 -0
- /package/dist/{chunk-AGSBIUPV.js.map → chunk-TPLKJHNN.js.map} +0 -0
- /package/dist/{chunk-U2AC4AQX.js.map → chunk-TU5EIKJA.js.map} +0 -0
- /package/dist/{chunk-BGYLL467.js.map → chunk-TXHJX2NG.js.map} +0 -0
- /package/dist/{chunk-E46PG577.js.map → chunk-URXT5TOY.js.map} +0 -0
- /package/dist/{chunk-5NKUYCZD.js.map → chunk-VON4BFK4.js.map} +0 -0
- /package/dist/{chunk-FL54G7PV.js.map → chunk-WIT3Y7JT.js.map} +0 -0
- /package/dist/{chunk-DVUPIVI2.js.map → chunk-WQA4LIIK.js.map} +0 -0
- /package/dist/{chunk-2UYR2OOE.js.map → chunk-YRUCIKPO.js.map} +0 -0
- /package/dist/{chunk-QKIJ6YXZ.js.map → chunk-ZA4U5GDU.js.map} +0 -0
- /package/dist/{chunk-OXQP3N6X.js.map → chunk-ZTZ6S5Q6.js.map} +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# FleetMap Test Status Tracking
|
|
2
|
+
|
|
3
|
+
## Test Files Status
|
|
4
|
+
|
|
5
|
+
- [x] `FleetMap.test.stories.tsx` created
|
|
6
|
+
- [x] `__tests__/fleet-map-helpers.test.ts` created — the four pure decisions,
|
|
7
|
+
at their boundaries, where a story is expensive to stage and an
|
|
8
|
+
off-by-one reads identically on screen
|
|
9
|
+
- [x] `__tests__/fleet-map-hook.test.ts` created — the two decisions the DOM
|
|
10
|
+
cannot show: `centre`'s IDENTITY across a poll, and who owns the
|
|
11
|
+
selection across a re-render
|
|
12
|
+
- [x] `__tests__/fleet-map-guards.test.tsx` created — the behaviours the review
|
|
13
|
+
rounds added guards for, in the suite CI actually runs (`test-storybook`
|
|
14
|
+
is deliberately not wired into this repo's CI)
|
|
15
|
+
- [x] `__tests__/fleet-map-theme.test.tsx` created — the row and its first-load
|
|
16
|
+
skeleton under two host themes, because a radius that looks right on the
|
|
17
|
+
default one is not evidence in a package built to be re-themed
|
|
18
|
+
- [x] All applicable test categories implemented
|
|
19
|
+
|
|
20
|
+
## Storybook Tests Status
|
|
21
|
+
|
|
22
|
+
### Test Results
|
|
23
|
+
|
|
24
|
+
| Test Name | Status | Pass/Fail | Notes |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
| Basic Interaction | Running | PASS | rows render, roster ordered freshest first |
|
|
27
|
+
| Freshness | Running | PASS | three states, words not colour, caller formats |
|
|
28
|
+
| Thresholds are props | Running | PASS | same fleet reads differently on tighter bounds |
|
|
29
|
+
| Selection | Running | PASS | click reports, `aria-selected` on one row only |
|
|
30
|
+
| Keyboard Navigation | Running | PASS | one tab stop, arrows move and wrap |
|
|
31
|
+
| Screen Reader | Running | PASS | region, named listbox, map named not hidden |
|
|
32
|
+
| Empty State | Running | PASS | empty state renders, no map canvas |
|
|
33
|
+
| Loading State | Running | PASS | busy, skeletons, NOT the empty state, and silent |
|
|
34
|
+
| Edge Cases | Running | PASS | one unit, long name, no badge, zero seconds |
|
|
35
|
+
| Active Descendant | Running | PASS | points at a row that exists, id is generated |
|
|
36
|
+
| Stale Selection | Running | PASS | a selection that left the fleet dangles nothing |
|
|
37
|
+
| Loading Announcement | Running | PASS | `role="status"` carries `copy.loading` |
|
|
38
|
+
| Loading Keeps Roster | Running | PASS | a poll over a populated roster keeps the listbox |
|
|
39
|
+
| Uncontrolled Selection | Running | PASS | works with neither selection prop passed |
|
|
40
|
+
| Controlled Without Handler | Running | PASS | arrows left un-prevented for the page |
|
|
41
|
+
| Idle Announcement Region | Running | PASS | the live region exists, and is empty, while idle |
|
|
42
|
+
|
|
43
|
+
Legend: Pending | Running | PASS | FAIL
|
|
44
|
+
|
|
45
|
+
Not implemented, and why: **Form Interaction** — the component has no form.
|
|
46
|
+
**Focus Management** — covered inside Keyboard Navigation, since the listbox's
|
|
47
|
+
single tab stop IS its focus contract. **Performance** — the roster is a short
|
|
48
|
+
list by construction (a fleet is people, not rows), so a render benchmark would
|
|
49
|
+
measure the fixture rather than the component.
|
|
50
|
+
|
|
51
|
+
## Static Stories Status
|
|
52
|
+
|
|
53
|
+
- [x] Default story
|
|
54
|
+
- [x] Empty state
|
|
55
|
+
- [x] Loading state
|
|
56
|
+
- [x] One unit
|
|
57
|
+
- [x] All stale
|
|
58
|
+
- [x] Tight thresholds
|
|
59
|
+
- [x] Long names / no accuracy
|
|
60
|
+
- [x] Selectable (controlled)
|
|
61
|
+
- [x] Compact height
|
|
62
|
+
|
|
63
|
+
## Lint Status
|
|
64
|
+
|
|
65
|
+
- [x] No lint errors
|
|
66
|
+
- [x] No warnings
|
|
67
|
+
- [x] Clean under `eslint.flakiness.config.mjs`
|
|
68
|
+
|
|
69
|
+
## TypeCheck Status
|
|
70
|
+
|
|
71
|
+
- [x] No type errors
|
|
72
|
+
- [x] All props properly typed, no `any`
|
|
73
|
+
|
|
74
|
+
## Overall Component Status
|
|
75
|
+
|
|
76
|
+
- [x] Lint clean
|
|
77
|
+
- [x] TypeCheck clean
|
|
78
|
+
- [x] Stories working
|
|
79
|
+
- [x] Unit tests passing (35: 16 helpers + 8 hook + 9 guards + 2 theme)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# FleetMap
|
|
2
|
+
|
|
3
|
+
Where a set of tracked units is right now: a map beside the roster that reads
|
|
4
|
+
it. Product-free — it draws labelled dots with a freshness, and every word plus
|
|
5
|
+
the two formatters arrive through `copy`. Built for a delivery fleet and
|
|
6
|
+
deliberately not named after one.
|
|
7
|
+
|
|
8
|
+
## Props
|
|
9
|
+
|
|
10
|
+
| prop | effect |
|
|
11
|
+
| --- | --- |
|
|
12
|
+
| `units` | who is reporting; empty renders the empty state rather than an empty map |
|
|
13
|
+
| `copy` | every word, and the `lastSeen` / `accuracy` formatters |
|
|
14
|
+
| `selectedId` | controlled selection; the map centres on it |
|
|
15
|
+
| `onSelect` | fired by a row click, each arrow-key move, and a pin click (mouse only — the pin is not focusable) |
|
|
16
|
+
| `laggingAfterSeconds` | when a unit stops reading as `live` |
|
|
17
|
+
| `staleAfterSeconds` | when it stops reading as `lagging` |
|
|
18
|
+
| `height` | the map's height |
|
|
19
|
+
| `loading` | first-load skeletons, map and roster `aria-busy` |
|
|
20
|
+
| `className` | on the panel root |
|
|
21
|
+
| `dataTestId` | root TEST id; DOM ids are generated separately |
|
|
22
|
+
|
|
23
|
+
## Lint
|
|
24
|
+
|
|
25
|
+
Clean, including the flakiness config.
|
|
26
|
+
|
|
27
|
+
## Type Errors
|
|
28
|
+
|
|
29
|
+
None.
|
|
30
|
+
|
|
31
|
+
## Testing Scenarios
|
|
32
|
+
|
|
33
|
+
Freshness at both thresholds and at their collapse; the centroid fallback and
|
|
34
|
+
the Atlantic-null for an empty fleet; roster order and its tie-break; selection
|
|
35
|
+
wrapping at both ends and a selection that has left the fleet; the empty state
|
|
36
|
+
against the loading state, which are opposite messages.
|
|
37
|
+
|
|
38
|
+
## Storybook Tests List
|
|
39
|
+
|
|
40
|
+
`BasicInteraction`, `FreshnessTest`, `ThresholdsAreProps`, `SelectionTest`,
|
|
41
|
+
`KeyboardNavigationTest`, `ControlledWithoutHandlerTest`, `ScreenReaderTest`,
|
|
42
|
+
`ActiveDescendantTest`, `StaleSelectionTest`, `EmptyStateTest`,
|
|
43
|
+
`LoadingStateTest`, `IdleAnnouncementRegionTest`, `LoadingAnnouncementTest`,
|
|
44
|
+
`LoadingKeepsThePopulatedRosterTest`, `UncontrolledSelectionTest`,
|
|
45
|
+
`EdgeCaseTest`.
|
|
46
|
+
|
|
47
|
+
## Current
|
|
48
|
+
|
|
49
|
+
Shipped. Its first consumer is an adopter's courier-tracking panel, which
|
|
50
|
+
composes it with its own transport and its own words.
|
|
@@ -61,13 +61,19 @@ escape hatch for the same button in a context where the action is harmless.
|
|
|
61
61
|
Refs are not forwarded (the HOC renders trigger + popup as a fragment, so there
|
|
62
62
|
is no single node to hand back). Use `<ConfirmAction>` where a ref is needed.
|
|
63
63
|
|
|
64
|
-
### `
|
|
64
|
+
### `createConfirmButton` — the HOC, pre-applied
|
|
65
65
|
|
|
66
|
-
`withConfirmation(Button)
|
|
67
|
-
|
|
66
|
+
`withConfirmation(Button)`, wrapped up for you. Use it when you just want a
|
|
67
|
+
guarded button and have no reason to build your own wrapper.
|
|
68
|
+
|
|
69
|
+
A FACTORY rather than a ready-made component, because the wording it bakes in is
|
|
70
|
+
the caller's: it takes the host's `ConfirmActionCopy` and its error sentence, and
|
|
71
|
+
returns the button. Build it once at module scope and use it like any other.
|
|
68
72
|
|
|
69
73
|
```tsx
|
|
70
|
-
import {
|
|
74
|
+
import { createConfirmButton } from '@12-apps/ui/feedback/ConfirmAction';
|
|
75
|
+
|
|
76
|
+
const ConfirmButton = createConfirmButton(PT_BR_CONFIRM_ACTION_COPY, 'Algo deu errado.');
|
|
71
77
|
|
|
72
78
|
<ConfirmButton
|
|
73
79
|
color="danger"
|
package/dist/chunk-X3HL5C6H.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-X3HL5C6H.js.map
|
/package/dist/{chunk-X3HL5C6H.js.map → _internal/components/data-display/FleetMap/FleetBody.js.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|