This brings the long-untracked @limitless/ui source tree under version
control. Until now /srv/k8s/templates/limitless-ui has been a plain
file: dependency consumed by gscChronos / gscCRM / gscAdmin, with
copies scattered across web/gsc{Portal,WWW,Aether,Register}/ and
apps/gsc{Meet,Share}/. None were git-tracked.
Treating /srv/k8s/templates/limitless-ui as the canonical going
forward; secondary copies should be replaced with this version
in their consumers' Dockerfiles when they next get touched.
Changes in this initial commit beyond the snapshot:
- Add src/layout/AppShell.tsx — runtime-loaded chrome (header,
sidebar, footer) backed by gsc-shell-api. Public surface:
AppShell, ShellProvider, useShell, ShellConfig types
Framework-agnostic (no Next.js dep). Apps pass appKey + apiUrl +
getToken; AppShell composes the existing PageShell / Navbar /
Sidebar / Footer primitives with API data.
- Re-export AppShell from src/index.ts.
- Fix build script: `tsc -p tsconfig.json --noEmit false`. The bare
`tsc` command was a no-op because tsconfig.json sets noEmit:true
for typecheck speed. Existing dist/ only existed because of an
earlier emit; clean rebuilds were silently broken.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Migration Status
Tracking migration from Limitless (Bootstrap 4 + jQuery) to React + Bootstrap 5 (no jQuery).
Legend: Pending (not started), In-Progress, Done.
| Area | Components/Pages | Status | Notes / Replacement libs |
|---|---|---|---|
| Layout & Navigation | layout_*, navbar_*, sidebar_*, navigation_*, content_page_header |
Pending | Rebuild with BS5, offcanvas for mobile, floating-ui for tooltips/popovers if needed |
| Core UI | components_* (alerts, buttons, dropdowns, modals, navs/tabs/pills, pagination, progress, breadcrumbs, badges, media, scrollspy) |
In-Progress | Added (Button, Alert, Badge, Breadcrumbs, Card, Tabs, Collapse, Table, Dropdown, Pagination, Progress, ProgressStacked, Modal, ListGroup, PageHeader, Accordion, Nav, Tooltip, Popover, Toast, Media, Scrollspy) |
| Cards & Content | content_cards*, content_helpers*, typography, syntax |
Pending | Map to BS5 cards + utility wrappers |
| Forms (base) | form_inputs*, form_input_groups, form_floating_labels, form_actions, checkboxes_radios, validation |
In-Progress | Added FormGroup, FormControl, FormCheck, InputGroup, Select |
| Forms (advanced) | form_select2, form_multiselect, form_tag_inputs, form_dual_listboxes, form_wizard |
In-Progress | Added SelectSingle, MultiSelect, TagsSelect, AsyncSelect (react-select); DatePicker (react-day-picker); ColorPicker (react-colorful); Wizard; DualListBox |
| Tables | table_* |
Pending | Headless BS5 tables |
| Data grid | datatable_* |
Pending | Replace with TanStack Table (sorting/filtering/pagination/virtual) |
| Data grid (basic) | datatable_* |
In-Progress | Added DataTable (TanStack-based) with sorting + simple pagination |
| Charts | d3_*, c3_*, echarts_*, google_* |
Pending | Prefer ECharts + D3 hooks; C3 optional via Recharts/D3 |
| Calendars | fullcalendar_* |
Pending | Use @fullcalendar/react |
| Pickers | picker_date, picker_color, picker_location |
Pending | react-day-picker/react-date-range, react-colorful, map autocomplete |
| Uploaders | uploader_* |
Pending | react-dropzone; uppy for advanced flows |
| Editors | editor_* |
Pending | CKEditor 5 React, TipTap/Quill, CodeMirror 6 |
| Notifications/Dialogs | extra_pnotify, extra_jgrowl_noty, extra_sweetalert |
Pending | react-hot-toast/notistack, sweetalert2-react-content |
| Extensions | extension_*, extra_*, animations_* |
Pending | BlockUI overlay, dnd-kit, react-easy-crop, context menu, rc-slider/noui, tree via react-sortable-tree-lite, idle/session hooks |
| Widgets/Pages | dashboards, auth, errors, blog, ecommerce, mail, chat, task manager, job board, learning, user profiles, gallery, search, timelines, invoices, sitemap, FAQ/feed/knowledgebase, colors | Pending | Ship as example compositions/templates |
| Maps | maps_google_*, maps_vector |
Pending | @react-google-maps/api, react-simple-maps/react-svg-map |
| Internationalization | internationalization_* |
Pending | react-i18next examples |