@godxjp/ui 28.13.0 → 29.0.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/agent/START-HERE.md +29 -10
- package/agent/components/Anchor.json +6 -1
- package/agent/components/AppShell.json +1 -1
- package/agent/components/AreaChart.json +19 -1
- package/agent/components/BarChart.json +11 -1
- package/agent/components/Cascader.json +1 -1
- package/agent/components/CompactBarTrend.json +1 -1
- package/agent/components/DataState.json +1 -1
- package/agent/components/DataTable.json +4 -4
- package/agent/components/FormField.json +1 -1
- package/agent/components/InfiniteQueryState.json +1 -1
- package/agent/components/Input.json +1 -1
- package/agent/components/LineChart.json +20 -2
- package/agent/components/ListRow.json +1 -1
- package/agent/components/Masonry.json +1 -1
- package/agent/components/MasterDetail.json +1 -1
- package/agent/components/PasswordStrength.json +1 -1
- package/agent/components/PermissionMatrix.json +1 -1
- package/agent/components/Select.json +1 -0
- package/agent/components/Sidebar.json +1 -1
- package/agent/components/Table.json +8 -3
- package/agent/components/ThemeScope.json +49 -0
- package/agent/components/Topbar.json +1 -0
- package/agent/components/TopbarItem.json +2 -1
- package/agent/components/Transfer.json +1 -1
- package/agent/components/TreeSelect.json +1 -1
- package/agent/components/UploadCropDialog.json +1 -1
- package/agent/components/formatDate.json +1 -1
- package/agent/components-index.json +5 -0
- package/agent/components.json +138 -30
- package/agent/index.json +19 -9
- package/agent/llms.txt +10 -10
- package/agent/patterns/tenant-brand-color.json +28 -0
- package/agent/patterns-index.json +27 -0
- package/agent/patterns.json +28 -0
- package/agent/rules.json +15 -0
- package/agent/tokens.json +4965 -970
- package/dist/app/index.d.ts +3 -0
- package/dist/app/index.js +3 -0
- package/dist/app/tenant-theme.d.ts +80 -0
- package/dist/app/tenant-theme.js +154 -0
- package/dist/app/theme-axes.d.ts +14 -1
- package/dist/app/theme-axes.js +24 -31
- package/dist/components/charts/chart-cartesian.d.ts +5 -1
- package/dist/components/charts/chart-cartesian.js +15 -8
- package/dist/components/data-display/badge.d.ts +1 -1
- package/dist/components/data-display/badge.js +20 -2
- package/dist/components/data-display/carousel.js +4 -4
- package/dist/components/data-display/data-table.js +13 -2
- package/dist/components/data-display/permission-matrix.js +1 -1
- package/dist/components/data-display/table.d.ts +11 -2
- package/dist/components/data-display/table.js +18 -2
- package/dist/components/data-entry/control-appearance.d.ts +12 -6
- package/dist/components/data-entry/control-appearance.js +1 -1
- package/dist/components/data-entry/select.js +4 -3
- package/dist/components/feedback/dialog.js +6 -3
- package/dist/components/feedback/overlay-header-tone.d.ts +7 -0
- package/dist/components/feedback/overlay-header-tone.js +4 -4
- package/dist/components/feedback/sheet.d.ts +1 -1
- package/dist/components/feedback/sheet.js +6 -9
- package/dist/components/feedback/sonner.js +16 -3
- package/dist/components/general/button.js +22 -5
- package/dist/components/layout/affix.js +15 -1
- package/dist/components/layout/sidebar.js +7 -1
- package/dist/components/navigation/anchor.d.ts +1 -1
- package/dist/components/navigation/anchor.js +5 -4
- package/dist/components/navigation/app-setting-picker.js +1 -1
- package/dist/components/navigation/pagination.js +1 -1
- package/dist/components/navigation/tabs.js +15 -2
- package/dist/components/query/infinite-query-state.d.ts +22 -6
- package/dist/lib/control-styles.d.ts +31 -11
- package/dist/lib/control-styles.js +6 -6
- package/dist/lib/overlay-portal.d.ts +20 -0
- package/dist/lib/overlay-portal.js +93 -0
- package/dist/props/components/app.prop.d.ts +12 -0
- package/dist/props/components/charts.prop.d.ts +30 -0
- package/dist/props/components/index.d.ts +1 -1
- package/dist/props/components/navigation.prop.d.ts +21 -2
- package/dist/props/components/query.prop.d.ts +36 -2
- package/dist/props/registry.d.ts +46 -1
- package/dist/props/registry.js +38 -3
- package/dist/styles/alert-layout.css +34 -14
- package/dist/styles/badge-layout.css +10 -6
- package/dist/styles/base.css +14 -5
- package/dist/styles/card-layout.css +19 -8
- package/dist/styles/chart-layout.css +22 -3
- package/dist/styles/control.css +165 -59
- package/dist/styles/data-display-layout.css +129 -36
- package/dist/styles/data-entry-layout.css +23 -87
- package/dist/styles/dialog-layout.css +49 -19
- package/dist/styles/float-button-layout.css +5 -5
- package/dist/styles/focus-ring.css +9 -5
- package/dist/styles/layout.css +42 -15
- package/dist/styles/logo-layout.css +1 -1
- package/dist/styles/motion.css +1 -1
- package/dist/styles/navigation-layout.css +90 -29
- package/dist/styles/shell-layout.css +63 -40
- package/dist/styles/table-layout.css +56 -17
- package/dist/styles/text-layout.css +13 -4
- package/dist/styles/toggle.css +8 -2
- package/dist/tokens/components/actions.css +1 -1
- package/dist/tokens/components/attachments.css +4 -4
- package/dist/tokens/components/badge.css +4 -4
- package/dist/tokens/components/callout.css +1 -1
- package/dist/tokens/components/card.css +9 -4
- package/dist/tokens/components/chart.css +10 -1
- package/dist/tokens/components/chat-bubble.css +1 -1
- package/dist/tokens/components/control.css +28 -10
- package/dist/tokens/components/conversations.css +2 -1
- package/dist/tokens/components/data-display.css +12 -7
- package/dist/tokens/components/descriptions.css +1 -1
- package/dist/tokens/components/draggable-panel.css +1 -1
- package/dist/tokens/components/feedback.css +28 -8
- package/dist/tokens/components/float-button.css +1 -1
- package/dist/tokens/components/legal-document.css +1 -1
- package/dist/tokens/components/logo.css +1 -1
- package/dist/tokens/components/mega-menu.css +5 -3
- package/dist/tokens/components/navigation.css +21 -7
- package/dist/tokens/components/segmented.css +8 -3
- package/dist/tokens/components/shell.css +19 -5
- package/dist/tokens/components/table.css +9 -1
- package/dist/tokens/components/thought-chain.css +1 -1
- package/dist/tokens/components/toggle.css +2 -0
- package/dist/tokens/components/tree.css +3 -1
- package/dist/tokens/components/upload.css +6 -6
- package/dist/tokens/components/welcome.css +1 -1
- package/dist/tokens/foundation.css +28 -1
- package/docs/COMPOSITION-VS-COMPONENT.md +31 -0
- package/docs/CUSTOMER-THEMING.md +637 -1
- package/docs/FRAME-COVERAGE-REPORT.md +3 -2
- package/docs/GLASSMORPHISM-STANDARD.md +196 -0
- package/docs/THEME-API-COVERAGE.md +538 -0
- package/docs/TOKEN-RESOLUTION.md +195 -0
- package/docs/TOKENS.md +63 -24
- package/docs/asset-modules.d.ts +7 -0
- package/docs/data-display/charts.tsx +80 -0
- package/docs/data-display/data-table/index.tsx +30 -0
- package/docs/data-display/popover.tsx +1 -1
- package/docs/data-display/table.tsx +52 -0
- package/docs/feedback/sheet.tsx +10 -10
- package/docs/foundation/density.tsx +4 -4
- package/docs/i18n/messages/en.json +502 -0
- package/docs/i18n/messages/ja.json +502 -0
- package/docs/i18n/messages/vi.json +502 -0
- package/docs/layout/account-chip.tsx +2 -2
- package/docs/layout/responsive-grid.tsx +1 -1
- package/docs/navigation/toolbar.tsx +20 -12
- package/docs/providers/theme-scope.tsx +186 -0
- package/docs/showcase/caimono-price-comparison.tsx +911 -0
- package/docs/showcase/case4-login.tsx +2 -2
- package/docs/showcase/permission-matrix.tsx +13 -5
- package/docs/showcase/table-pagination.tsx +2 -1
- package/docs/showcase/tenant-brand-color.tsx +338 -0
- package/docs/showcase/theme-lab.tsx +2125 -0
- package/docs/themes/flat.css +462 -0
- package/docs/themes/glassmorphism.css +958 -0
- package/docs/themes/index.ts +200 -0
- package/package.json +4 -3
- package/scripts/explain-token.mjs +382 -0
|
@@ -689,5 +689,507 @@
|
|
|
689
689
|
}
|
|
690
690
|
}
|
|
691
691
|
}
|
|
692
|
+
},
|
|
693
|
+
"caimono": {
|
|
694
|
+
"brand": "Caimono",
|
|
695
|
+
"eyebrow": "HIỂU RÕ GIÁ. CHỌN ĐÚNG NƠI.",
|
|
696
|
+
"demo": "BẢN THIẾT KẾ TƯƠNG TÁC · Sản phẩm, cửa hàng và giá đều là minh hoạ.",
|
|
697
|
+
"synthetic": "SẢN PHẨM GIẢ LẬP",
|
|
698
|
+
"product": "Aero H1 Wireless",
|
|
699
|
+
"productMeta": "Model AERO-H1 · {count} sản phẩm · Không gộp H2 hoặc hàng theo bộ",
|
|
700
|
+
"variant": "Màu đang so sánh",
|
|
701
|
+
"black": "Đen · H1-BK",
|
|
702
|
+
"cream": "Kem · H1-CR",
|
|
703
|
+
"condition": "Tình trạng sản phẩm",
|
|
704
|
+
"new": "Hàng mới",
|
|
705
|
+
"used": "Đã qua sử dụng",
|
|
706
|
+
"lowest": "Tổng thấp nhất đủ điều kiện",
|
|
707
|
+
"noEligible": "Chưa có giá đủ điều kiện",
|
|
708
|
+
"incl": "Gồm thuế và phí giao nội địa đã biết",
|
|
709
|
+
"couponActive": "Đã trừ coupon Hako theo xác nhận của bạn",
|
|
710
|
+
"couponInactive": "Chưa trừ coupon; chưa trừ điểm",
|
|
711
|
+
"bestDetails": "Xem báo giá thấp nhất",
|
|
712
|
+
"priceAlert": "Báo khi giá giảm",
|
|
713
|
+
"save": "Lưu sản phẩm",
|
|
714
|
+
"saved": "Đã lưu sản phẩm",
|
|
715
|
+
"offers": "So sánh nơi bán",
|
|
716
|
+
"snapshot": "Mốc dữ liệu mẫu: {date} (giờ Nhật)",
|
|
717
|
+
"findShop": "Tìm cửa hàng trong bảng",
|
|
718
|
+
"searchPlaceholder": "Tên cửa hàng…",
|
|
719
|
+
"deliverTo": "Giao nội địa tới",
|
|
720
|
+
"Tokyo": "Tokyo",
|
|
721
|
+
"Osaka": "Osaka",
|
|
722
|
+
"sort": "Sắp xếp",
|
|
723
|
+
"totalSort": "Tổng tiền: thấp → cao",
|
|
724
|
+
"deliverySort": "Giao hàng: sớm nhất",
|
|
725
|
+
"free": "Miễn phí giao nội địa",
|
|
726
|
+
"stockOnly": "Chỉ còn hàng",
|
|
727
|
+
"fast": "Giao trong {duration}",
|
|
728
|
+
"reset": "Xoá bộ lọc",
|
|
729
|
+
"counts": "Báo giá: {total} · Đủ điều kiện xếp hạng: {eligible}",
|
|
730
|
+
"shop": "Cửa hàng",
|
|
731
|
+
"cash": "Tổng tiền phải trả",
|
|
732
|
+
"delivery": "Giao hàng & bảo hành",
|
|
733
|
+
"action": "Hành động",
|
|
734
|
+
"breakdown": "Xem chi tiết giá",
|
|
735
|
+
"detailFor": "Chi tiết giá — {merchant}",
|
|
736
|
+
"best": "Tổng thấp nhất",
|
|
737
|
+
"observed": "Ghi nhận lúc {date}",
|
|
738
|
+
"itemValue": "Sản phẩm: {amount}",
|
|
739
|
+
"shippingValue": "Giao nội địa: {amount}",
|
|
740
|
+
"discountValue": "Coupon đủ điều kiện: −{amount}",
|
|
741
|
+
"unknownTotal": "Chưa đủ phí để tính tổng",
|
|
742
|
+
"unknown": "Chưa xác định",
|
|
743
|
+
"eta": "Dự kiến {duration} (demo)",
|
|
744
|
+
"pointsValue": "Điểm thưởng: {count} · Không trừ vào tiền phải trả",
|
|
745
|
+
"stale": "Giá cũ — cần kiểm tra lại",
|
|
746
|
+
"outStock": "Hết hàng",
|
|
747
|
+
"needsShipping": "Phí giao cần xác nhận",
|
|
748
|
+
"inStock": "Còn hàng",
|
|
749
|
+
"manufacturer": "Bảo hành nhà sản xuất (demo)",
|
|
750
|
+
"sellerWarranty": "Bảo hành cửa hàng (demo)",
|
|
751
|
+
"noResultTitle": "Chưa thấy cửa hàng phù hợp",
|
|
752
|
+
"noResultBody": "Thử bỏ bớt bộ lọc hoặc đổi tên cửa hàng. Dữ liệu chưa có không có nghĩa là giá bằng 0.",
|
|
753
|
+
"limitNote": "Chỉ so sánh các báo giá hiển thị đúng model, màu, tình trạng, thị trường và có tổng tiền xác định. Giá cuối cùng cần kiểm tra tại cửa hàng.",
|
|
754
|
+
"couponTitle": "Bạn có coupon Hako?",
|
|
755
|
+
"couponLabel": "Tôi đã kiểm tra và đủ điều kiện giảm {amount}",
|
|
756
|
+
"couponHelp": "Mô phỏng coupon tài khoản mới; chỉ áp dụng Hako Market. Không tự bật.",
|
|
757
|
+
"expires": "Hết hạn: {date} (giờ Nhật)",
|
|
758
|
+
"whyRank": "Cách bảng giá được xếp",
|
|
759
|
+
"rule1": "Cùng biến thể, tình trạng và thị trường.",
|
|
760
|
+
"rule2": "Ưu tiên giá còn mới, còn hàng, đủ phí.",
|
|
761
|
+
"rule3": "Không lấy hoa hồng để đẩy thứ hạng.",
|
|
762
|
+
"kaimiBody": "Điểm thưởng không phải tiền được giảm ngay. Hãy nhìn tổng tiền trước, rồi kiểm tra điều kiện và thời hạn dùng điểm nhé.",
|
|
763
|
+
"buyAssist": "Bạn cần mua hộ từ Nhật?",
|
|
764
|
+
"buyAssistBody": "Tách riêng phí mua hộ, vận chuyển quốc tế và khoản chưa xác định. Không gọi giá nội địa là giá về tay.",
|
|
765
|
+
"quote": "Xem cấu trúc báo giá",
|
|
766
|
+
"historyTitle": "Giá thấp nhất theo thời gian",
|
|
767
|
+
"historyScope": "Dữ liệu giả lập · đen / mới / Tokyo · trước coupon · không thay đổi theo bộ lọc",
|
|
768
|
+
"period": "Khoảng thời gian",
|
|
769
|
+
"historyMetric": "Tổng đã biết, chưa trừ điểm",
|
|
770
|
+
"date": "Ngày mẫu",
|
|
771
|
+
"price": "Tổng tiền mẫu",
|
|
772
|
+
"reviewTitle": "Chọn đúng trước khi chọn rẻ",
|
|
773
|
+
"editorial": "Đánh giá biên tập",
|
|
774
|
+
"editorialBody": "Chưa có kiểm thử thực tế cho sản phẩm giả lập này. Không hiển thị điểm kiểm thử hoặc huy hiệu “đã kiểm chứng”.",
|
|
775
|
+
"community": "Đánh giá cộng đồng",
|
|
776
|
+
"communityBody": "Chưa có đánh giá. Điểm của cửa hàng không được dùng làm điểm chất lượng sản phẩm.",
|
|
777
|
+
"specTitle": "Thông số mô phỏng",
|
|
778
|
+
"model": "Model",
|
|
779
|
+
"modelValue": "AERO-H1",
|
|
780
|
+
"connection": "Kết nối",
|
|
781
|
+
"wireless": "Không dây",
|
|
782
|
+
"unit": "Đơn vị so sánh",
|
|
783
|
+
"market": "Thị trường",
|
|
784
|
+
"japan": "Nhật Bản",
|
|
785
|
+
"disclosure": "MINH BẠCH THƯƠNG MẠI",
|
|
786
|
+
"disclosureText": "Bản mẫu chưa gắn liên kết tiếp thị. Khi triển khai, công khai hoa hồng gần bảng giá và tách riêng thẻ tài trợ. Demo loại giá cũ hơn {duration} khỏi nhãn tổng thấp nhất.",
|
|
787
|
+
"footerNote": "Bản mẫu · Không kết nối shop, thanh toán hoặc thông báo thật.",
|
|
788
|
+
"close": "Đóng",
|
|
789
|
+
"breakdownTitle": "Hiểu rõ khoản phải trả",
|
|
790
|
+
"breakdownNote": "Dữ liệu minh hoạ; không có giao dịch thật và không chuyển sang website cửa hàng.",
|
|
791
|
+
"item": "Giá sản phẩm",
|
|
792
|
+
"shipping": "Phí giao nội địa",
|
|
793
|
+
"fee": "Phí bắt buộc",
|
|
794
|
+
"discount": "Coupon đủ điều kiện",
|
|
795
|
+
"points": "Điểm thưởng dự kiến",
|
|
796
|
+
"notDeducted": "Không trừ vào tiền phải trả",
|
|
797
|
+
"notRankedExplain": "Báo giá này không đủ điều kiện gắn nhãn tổng thấp nhất. Vẫn giữ giá nguồn để người dùng nhận biết dữ liệu cũ hoặc thiếu phí.",
|
|
798
|
+
"alertTitle": "Đặt ngưỡng giá mong muốn",
|
|
799
|
+
"alertBody": "Demo chỉ lưu ngưỡng trong trình duyệt này, không gửi email hoặc thông báo. Khi triển khai, cảnh báo phải gắn với đúng biến thể, tình trạng, nơi giao và loại giá.",
|
|
800
|
+
"alertScope": "AERO-H1 · {variant} · {condition} · {destination} · JPY",
|
|
801
|
+
"alertLabel": "Thông báo khi tổng không vượt quá (JPY)",
|
|
802
|
+
"alertHelp": "Số nguyên lớn hơn 0. Không trừ điểm hoặc coupon cá nhân.",
|
|
803
|
+
"alertSave": "Lưu ngưỡng trong demo",
|
|
804
|
+
"alertSaved": "Đã lưu ngưỡng trên thiết bị này. Không có thông báo thật được thiết lập.",
|
|
805
|
+
"storageFail": "Trình duyệt không cho phép lưu. Chưa lưu thiết lập.",
|
|
806
|
+
"favoriteOn": "Đã lưu sản phẩm trong trình duyệt này.",
|
|
807
|
+
"favoriteOff": "Đã bỏ lưu sản phẩm trong trình duyệt này.",
|
|
808
|
+
"quoteTitle": "Mua hộ: báo giá hai giai đoạn",
|
|
809
|
+
"quoteBody": "Đây là mẫu giải thích, không phải báo giá dịch vụ. Phải tách khoản đã biết khỏi khoản cần xác nhận trước khi yêu cầu thanh toán.",
|
|
810
|
+
"domestic": "Giá mua trong Nhật theo lựa chọn",
|
|
811
|
+
"assistFee": "Phí mua hộ",
|
|
812
|
+
"intlShip": "Phí gửi quốc tế",
|
|
813
|
+
"importCost": "Thuế / phí nhập khẩu",
|
|
814
|
+
"landed": "Tổng về tay",
|
|
815
|
+
"pendingQuote": "Cần báo giá",
|
|
816
|
+
"notFinal": "Chưa thể xác nhận",
|
|
817
|
+
"quoteNote": "Không hiển thị nút thanh toán khi còn thiếu phí. Bước tiếp theo ở sản phẩm thật là yêu cầu báo giá, không phải “mua ngay”.",
|
|
818
|
+
"merchants": {
|
|
819
|
+
"mori": "Mori Store",
|
|
820
|
+
"aoi": "Aoi Direct",
|
|
821
|
+
"hako": "Hako Market",
|
|
822
|
+
"kumo": "Kumo Shop",
|
|
823
|
+
"haru": "Haru Select",
|
|
824
|
+
"mika": "Mika Audio",
|
|
825
|
+
"neko": "Neko Outlet",
|
|
826
|
+
"other": "Other Model Shop"
|
|
827
|
+
}
|
|
828
|
+
},
|
|
829
|
+
"dataTableDocs": {
|
|
830
|
+
"stackedRecordWide": "Bộ bản ghi (khổ rộng: vẫn là bảng)",
|
|
831
|
+
"stackedRecordFolded": "Cùng bảng, cùng định nghĩa cột (khổ hẹp: gập thành thẻ)"
|
|
832
|
+
},
|
|
833
|
+
"chartsDocs": {
|
|
834
|
+
"areaSplitTitle": "AreaChart · tách màu nền khỏi nét / cắt trục giá trị",
|
|
835
|
+
"areaSplitBody": "series[].fillColor đặt màu dải nền độc lập với color của đường, còn valueDomain / valueTicks nói rõ trục giá trị. Trục không bắt đầu từ 0 chỉ chính đáng khi HÌNH DẠNG mới là thông điệp và số 0 không phải mốc có nghĩa — giá, nhiệt độ, chỉ số, phân vị độ trễ. Ở mọi biểu đồ bắt người đọc so sánh độ lớn (mọi biểu đồ cột), nó phóng đại dao động và gây hiểu sai. Nếu cắt, hãy ghi rõ khoảng và giữ lưới.",
|
|
836
|
+
"areaSplitLabel": "Giá theo tuần (cắt còn 24.000–31.000 ¥)",
|
|
837
|
+
"areaSplitDescription": "Không lấy mốc 0. Trục chạy từ 24.000 đến 31.000 ¥.",
|
|
838
|
+
"priceSeries": "Giá",
|
|
839
|
+
"tokenScopeTitle": "Token chủ đề · phạm vi một vùng",
|
|
840
|
+
"tokenScopeBody": "Độ dày nét, độ đậm dải nền và kiểu gạch của lưới là phong cách chung nên là token chứ không phải prop. --chart-series-stroke-width / --chart-area-fill-alpha / --chart-grid-line-dash chỉ đặt trên khối bên dưới. Không cần CSS riêng cho trang, không cần recharts thô.",
|
|
841
|
+
"tokenScopeLabel": "Giá theo tuần (đã áp chủ đề)"
|
|
842
|
+
},
|
|
843
|
+
"themeScopeDocs": {
|
|
844
|
+
"page": {
|
|
845
|
+
"subtitle": "Một vùng có theme riêng, và overlay nó mở ra giữ nguyên token của vùng đó.",
|
|
846
|
+
"title": "ThemeScope"
|
|
847
|
+
},
|
|
848
|
+
"intro": {
|
|
849
|
+
"title": "Vì sao một vùng cần đến nó",
|
|
850
|
+
"description": "Mọi overlay đều portal ra document.body, nên kế thừa custom property dừng lại ở ranh giới portal.",
|
|
851
|
+
"body": "Một vùng tự đặt theme chỉ phủ được cây con của nó, không phủ được thứ nó mở ra: đo trên một scope có theme, vùng đọc --primary 204 100% 37% còn Dialog nó mở đọc 268.7 100% 50% — mặc định của package. ThemeScope mang phần CHÊNH LỆCH đã tính giữa vùng và gốc tài liệu sang một host đặt tại đích portal, nên overlay kế thừa bằng chính quan hệ chứa trong DOM. Nó không có prop theme — nó đọc DOM, nên style inline, class hay rule trong stylesheet đều cho cùng một kết quả."
|
|
852
|
+
},
|
|
853
|
+
"region": {
|
|
854
|
+
"description": "Mở bất cứ thứ gì ở đây. Panel mở ra được tô bằng token của vùng này.",
|
|
855
|
+
"pending": "Chờ duyệt",
|
|
856
|
+
"queue": "12 hồ sơ đang trong hàng đợi",
|
|
857
|
+
"reviewerLabel": "Giao người duyệt",
|
|
858
|
+
"reviewerPlaceholder": "Chọn người duyệt",
|
|
859
|
+
"approve": "Duyệt hồ sơ",
|
|
860
|
+
"history": "Lịch sử duyệt",
|
|
861
|
+
"notify": "Báo cho người nộp"
|
|
862
|
+
},
|
|
863
|
+
"dialog": {
|
|
864
|
+
"title": "Duyệt hồ sơ này",
|
|
865
|
+
"description": "Lượt duyệt được ghi vào tài khoản của bạn và người nộp được báo ngay.",
|
|
866
|
+
"confirm": "Duyệt",
|
|
867
|
+
"body": "Ba hồ sơ của khách hàng này đang chờ cùng một bộ chứng từ."
|
|
868
|
+
},
|
|
869
|
+
"popover": {
|
|
870
|
+
"body": "Đã trả lại một lần vì thiếu chứng từ, nộp lại trong cùng ngày."
|
|
871
|
+
},
|
|
872
|
+
"toast": {
|
|
873
|
+
"approved": "Đã duyệt hồ sơ",
|
|
874
|
+
"saved": "Đã báo cho người nộp"
|
|
875
|
+
},
|
|
876
|
+
"acme": {
|
|
877
|
+
"name": "ACME Logistics"
|
|
878
|
+
},
|
|
879
|
+
"night": {
|
|
880
|
+
"name": "Bảng điều khiển ca đêm"
|
|
881
|
+
},
|
|
882
|
+
"without": {
|
|
883
|
+
"title": "Cũng vùng đó nhưng không có ThemeScope",
|
|
884
|
+
"description": "Token khai báo y hệt phía trên — chỉ khác là wrapper chỉ còn là một div thường.",
|
|
885
|
+
"open": "Duyệt hồ sơ",
|
|
886
|
+
"dialogTitle": "Duyệt hồ sơ này",
|
|
887
|
+
"dialogDescription": "Panel này chính là lỗi: nó được tô bằng mặc định của package, không phải bằng vùng đã mở nó.",
|
|
888
|
+
"dialogBody": "So nút đã mở panel với nút nằm trong panel: màu của vùng đã không đi theo."
|
|
889
|
+
}
|
|
890
|
+
},
|
|
891
|
+
"tableDocs": {
|
|
892
|
+
"title": "Biến động thu chi · row tone",
|
|
893
|
+
"item": "Khoản mục",
|
|
894
|
+
"amount": "Số tiền",
|
|
895
|
+
"status": "Trạng thái",
|
|
896
|
+
"fee": "Phí chuyển khoản",
|
|
897
|
+
"done": "Đã xử lý",
|
|
898
|
+
"overdue": "Quá hạn thanh toán (3 ngày)",
|
|
899
|
+
"check": "Cần kiểm tra",
|
|
900
|
+
"failed": "Ghi nợ tự động thất bại",
|
|
901
|
+
"failedBadge": "Thất bại"
|
|
902
|
+
},
|
|
903
|
+
"themeLab": {
|
|
904
|
+
"page": {
|
|
905
|
+
"title": "Phòng thí nghiệm theme",
|
|
906
|
+
"subtitle": "Một trang, mọi component có thể render, nhiều theme, nhiều màu seed. Theme ở đây chỉ gồm custom property, không gì khác.",
|
|
907
|
+
"footer": "URL mang theo theme và seed, nên ảnh chụp và phép đo cùng chỉ tới một ô của ma trận."
|
|
908
|
+
},
|
|
909
|
+
"product": "Theme Lab",
|
|
910
|
+
"switch": {
|
|
911
|
+
"title": "Theme và màu seed",
|
|
912
|
+
"note": "Thêm một theme là thêm một file CSS và một dòng trong docs/themes/index.ts. Trang này không phải sửa.",
|
|
913
|
+
"themeLabel": "Theme",
|
|
914
|
+
"seedLabel": "Màu seed",
|
|
915
|
+
"modeLabel": "Sắc độ",
|
|
916
|
+
"seedHex": "Seed",
|
|
917
|
+
"seedInk": "Màu chữ trên seed",
|
|
918
|
+
"seedContrast": "Tương phản chữ, WCAG 2.2 SC 1.4.3",
|
|
919
|
+
"legendPass": "từ 4.5:1 trở lên",
|
|
920
|
+
"legendFail": "dưới AA"
|
|
921
|
+
},
|
|
922
|
+
"mode": {
|
|
923
|
+
"light": "Sáng",
|
|
924
|
+
"dark": "Tối"
|
|
925
|
+
},
|
|
926
|
+
"theme": {
|
|
927
|
+
"base": {
|
|
928
|
+
"name": "Mặc định",
|
|
929
|
+
"note": "Theme của chính thư viện. Không file theme, không override — đây là nhóm đối chứng cho thấy component khi chưa khoác theme."
|
|
930
|
+
},
|
|
931
|
+
"glass": {
|
|
932
|
+
"name": "Glassmorphism",
|
|
933
|
+
"note": "Mặt kính mờ bán trong suốt, blur nền kèm bão hoà, viền sáng mảnh và chiều sâu nhiều lớp trên một nền rực rỡ."
|
|
934
|
+
},
|
|
935
|
+
"flat": {
|
|
936
|
+
"name": "Flat",
|
|
937
|
+
"note": "Không bo góc, không đổ bóng, mặt đục ngăn nhau bằng một đường kẻ. Bo góc về 0 tốn sáu mươi bảy khai báo."
|
|
938
|
+
}
|
|
939
|
+
},
|
|
940
|
+
"seed": {
|
|
941
|
+
"violet": "Tím",
|
|
942
|
+
"azure": "Xanh lam",
|
|
943
|
+
"coral": "Cam san hô",
|
|
944
|
+
"citron": "Vàng chanh",
|
|
945
|
+
"navy": "Xanh navy"
|
|
946
|
+
},
|
|
947
|
+
"nav": {
|
|
948
|
+
"section": "Không gian làm việc",
|
|
949
|
+
"overview": "Tổng quan",
|
|
950
|
+
"reports": "Báo cáo",
|
|
951
|
+
"people": "Nhân sự",
|
|
952
|
+
"settings": "Cài đặt",
|
|
953
|
+
"role": "Quản trị viên",
|
|
954
|
+
"footer": "Đã đăng nhập"
|
|
955
|
+
},
|
|
956
|
+
"app": {
|
|
957
|
+
"console": "Bảng điều khiển",
|
|
958
|
+
"billing": "Thanh toán"
|
|
959
|
+
},
|
|
960
|
+
"topbar": {
|
|
961
|
+
"notifications": "Thông báo",
|
|
962
|
+
"account": "Tài khoản"
|
|
963
|
+
},
|
|
964
|
+
"menu": {
|
|
965
|
+
"profile": "Hồ sơ",
|
|
966
|
+
"billing": "Thanh toán",
|
|
967
|
+
"logout": "Đăng xuất"
|
|
968
|
+
},
|
|
969
|
+
"popover": {
|
|
970
|
+
"title": "Hai mục mới",
|
|
971
|
+
"body": "Hiện chưa có gì cần bạn xử lý.",
|
|
972
|
+
"action": "Đánh dấu đã đọc"
|
|
973
|
+
},
|
|
974
|
+
"section": {
|
|
975
|
+
"type": "Chữ, ký hiệu và nhịp",
|
|
976
|
+
"typeNote": "Thang màu chữ là thứ vỡ đầu tiên trên một mặt bán trong suốt, nên mọi bậc của nó cùng nằm trên trang.",
|
|
977
|
+
"actions": "Hành động",
|
|
978
|
+
"display": "Trạng thái và hiển thị dữ liệu",
|
|
979
|
+
"tables": "Bảng",
|
|
980
|
+
"charts": "Biểu đồ",
|
|
981
|
+
"fields": "Thành phần nhập liệu",
|
|
982
|
+
"fieldsNote": "Một ô nhập phải đọc ra là chỗ gõ được trước khi đọc ra là một theme: nền, viền, vòng focus, placeholder và cả hai trạng thái rỗng/đã điền đều ở đây.",
|
|
983
|
+
"nav": "Điều hướng",
|
|
984
|
+
"feedback": "Phản hồi",
|
|
985
|
+
"overlays": "Lớp phủ",
|
|
986
|
+
"overlaysNote": "Những lớp này được MỞ khi đo, không chỉ đặt sẵn. Mỗi lớp portal ra ngoài cây DOM này và nhận theme qua overlay host của ThemeScope.",
|
|
987
|
+
"regions": "Vùng lồng nhau",
|
|
988
|
+
"chat": "Hội thoại",
|
|
989
|
+
"absent": "Không render được",
|
|
990
|
+
"absentNote": "Một thiếu sót không ai thấy là thiếu sót không ai tính đến."
|
|
991
|
+
},
|
|
992
|
+
"absent": {
|
|
993
|
+
"export": "Export",
|
|
994
|
+
"reason": "Lý do",
|
|
995
|
+
"provider": "Một provider, đã được runtime preview mount ở phía trên trang này.",
|
|
996
|
+
"overlayPortal": "Provider đổi nơi portal của mọi lớp phủ; dùng ở đây sẽ thay mất chính overlay host của ThemeScope mà trang này muốn đo.",
|
|
997
|
+
"themeScope": "Chính là wrapper của trang này.",
|
|
998
|
+
"ownsPage": "Shell chiếm trọn tài liệu, không lồng được trong AppShell.",
|
|
999
|
+
"hook": "Là hook, không có mặt nào để sơn.",
|
|
1000
|
+
"function": "Là hàm, không phải component.",
|
|
1001
|
+
"inertia": "Adapter của Inertia; cần một router mà preview này không có.",
|
|
1002
|
+
"needsFile": "Cần một File thật do người dùng chọn từ ô tải lên.",
|
|
1003
|
+
"needsNetwork": "Cần ảnh qua mạng; ở đây dùng asset đã commit thay thế.",
|
|
1004
|
+
"needsRouter": "Cần một route và một query prefetch được.",
|
|
1005
|
+
"needsQuery": "Cần kết quả TanStack Query thật, vốn là chuyện dữ liệu chứ không phải theme.",
|
|
1006
|
+
"invisible": "Có trên trang, và theo định nghĩa thì nó không sơn gì cả.",
|
|
1007
|
+
"needsSchema": "Cần một schema zod, trong khi check:example-imports chỉ cho trang tài liệu import react, lucide-react và @godxjp/ui.",
|
|
1008
|
+
"sameSurface": "Là dạng lắp ghép của AlertDialog vốn đã có trên trang; nó không vẽ thêm mặt nào."
|
|
1009
|
+
},
|
|
1010
|
+
"action": {
|
|
1011
|
+
"save": "Lưu",
|
|
1012
|
+
"cancel": "Huỷ",
|
|
1013
|
+
"secondary": "Phụ",
|
|
1014
|
+
"outline": "Viền",
|
|
1015
|
+
"ghost": "Trong suốt",
|
|
1016
|
+
"dashed": "Nét đứt",
|
|
1017
|
+
"destructive": "Xoá",
|
|
1018
|
+
"link": "Liên kết",
|
|
1019
|
+
"disabled": "Vô hiệu",
|
|
1020
|
+
"search": "Tìm kiếm",
|
|
1021
|
+
"bold": "Đậm",
|
|
1022
|
+
"unread": "Chưa đọc",
|
|
1023
|
+
"retry": "Thử lại",
|
|
1024
|
+
"more": "Thêm",
|
|
1025
|
+
"share": "Chia sẻ",
|
|
1026
|
+
"open": "Mở"
|
|
1027
|
+
},
|
|
1028
|
+
"align": {
|
|
1029
|
+
"start": "Trái",
|
|
1030
|
+
"center": "Giữa",
|
|
1031
|
+
"end": "Phải"
|
|
1032
|
+
},
|
|
1033
|
+
"label": {
|
|
1034
|
+
"variants": "Biến thể",
|
|
1035
|
+
"sizes": "Kích thước",
|
|
1036
|
+
"toggles": "Toggle và đánh giá",
|
|
1037
|
+
"actionsBar": "Thao tác với câu trả lời",
|
|
1038
|
+
"badges": "Badge và ô màu",
|
|
1039
|
+
"items": "mục",
|
|
1040
|
+
"align": "Canh lề",
|
|
1041
|
+
"progress": "Dung lượng đã dùng",
|
|
1042
|
+
"people": "Nhóm",
|
|
1043
|
+
"tools": "Công cụ",
|
|
1044
|
+
"schedule": "Lịch",
|
|
1045
|
+
"week": "Tuần",
|
|
1046
|
+
"start": "Bắt đầu khoảng",
|
|
1047
|
+
"end": "Kết thúc khoảng",
|
|
1048
|
+
"permissions": "Quyền",
|
|
1049
|
+
"quickPick": "Chọn nhanh",
|
|
1050
|
+
"noResults": "Không có gì để hiển thị",
|
|
1051
|
+
"available": "Có thể chọn",
|
|
1052
|
+
"selected": "Đã chọn",
|
|
1053
|
+
"qr": "Mã QR đăng ký",
|
|
1054
|
+
"thumbnail": "Ảnh chụp bảng điều khiển",
|
|
1055
|
+
"credential": "Khoá API",
|
|
1056
|
+
"detail": "Chi tiết",
|
|
1057
|
+
"master": "Danh sách",
|
|
1058
|
+
"catalog": "Thêm từ catalogue",
|
|
1059
|
+
"mainNav": "Điều hướng chính",
|
|
1060
|
+
"onThisPage": "Mục lục trang",
|
|
1061
|
+
"pinned": "Thanh ghim",
|
|
1062
|
+
"skeletons": "Khung chờ tải",
|
|
1063
|
+
"assistant": "Trợ lý",
|
|
1064
|
+
"loading": "Đang tải",
|
|
1065
|
+
"rating": "Đánh giá"
|
|
1066
|
+
},
|
|
1067
|
+
"table": {
|
|
1068
|
+
"name": "Tên",
|
|
1069
|
+
"owner": "Phụ trách",
|
|
1070
|
+
"status": "Trạng thái",
|
|
1071
|
+
"amount": "Số tiền"
|
|
1072
|
+
},
|
|
1073
|
+
"tone": {
|
|
1074
|
+
"neutral": "Thường",
|
|
1075
|
+
"success": "Đã duyệt",
|
|
1076
|
+
"warning": "Chờ xử lý",
|
|
1077
|
+
"destructive": "Từ chối",
|
|
1078
|
+
"info": "Thông tin"
|
|
1079
|
+
},
|
|
1080
|
+
"stat": {
|
|
1081
|
+
"members": "Thành viên",
|
|
1082
|
+
"revenue": "Doanh thu",
|
|
1083
|
+
"usage": "Mức sử dụng",
|
|
1084
|
+
"open": "Yêu cầu đang mở",
|
|
1085
|
+
"hint": "Tăng 3% so với tháng trước"
|
|
1086
|
+
},
|
|
1087
|
+
"chart": {
|
|
1088
|
+
"trend": "Kế hoạch và thực tế",
|
|
1089
|
+
"plan": "Kế hoạch",
|
|
1090
|
+
"actual": "Thực tế",
|
|
1091
|
+
"byMonth": "Theo tháng",
|
|
1092
|
+
"stacked": "Chồng lớp",
|
|
1093
|
+
"split": "Cơ cấu",
|
|
1094
|
+
"weekly": "Bảy ngày gần nhất"
|
|
1095
|
+
},
|
|
1096
|
+
"field": {
|
|
1097
|
+
"name": "Tên",
|
|
1098
|
+
"namePlaceholder": "Từ 2 đến 60 ký tự",
|
|
1099
|
+
"email": "Email",
|
|
1100
|
+
"emailError": "Đây không phải một địa chỉ email.",
|
|
1101
|
+
"search": "Tìm kiếm",
|
|
1102
|
+
"searchPlaceholder": "Tìm theo tên hoặc mã",
|
|
1103
|
+
"quantity": "Số lượng",
|
|
1104
|
+
"password": "Mật khẩu",
|
|
1105
|
+
"notes": "Ghi chú",
|
|
1106
|
+
"tags": "Nhãn",
|
|
1107
|
+
"role": "Vai trò",
|
|
1108
|
+
"date": "Ngày",
|
|
1109
|
+
"time": "Giờ",
|
|
1110
|
+
"timeRange": "Ca làm",
|
|
1111
|
+
"colour": "Màu thương hiệu",
|
|
1112
|
+
"volume": "Âm lượng",
|
|
1113
|
+
"region": "Khu vực",
|
|
1114
|
+
"account": "Tài khoản kế toán",
|
|
1115
|
+
"notify": "Thông báo qua email",
|
|
1116
|
+
"agree": "Tôi đồng ý với điều khoản",
|
|
1117
|
+
"scope": "Phạm vi áp dụng"
|
|
1118
|
+
},
|
|
1119
|
+
"role": {
|
|
1120
|
+
"viewer": "Người xem",
|
|
1121
|
+
"editor": "Người biên tập",
|
|
1122
|
+
"admin": "Quản trị viên"
|
|
1123
|
+
},
|
|
1124
|
+
"perm": {
|
|
1125
|
+
"read": "Đọc",
|
|
1126
|
+
"write": "Ghi",
|
|
1127
|
+
"admin": "Quản trị"
|
|
1128
|
+
},
|
|
1129
|
+
"overlay": {
|
|
1130
|
+
"dialog": "Mở dialog",
|
|
1131
|
+
"sheet": "Mở sheet",
|
|
1132
|
+
"alertDialog": "Xác nhận xoá",
|
|
1133
|
+
"tooltip": "Rê chuột xem tooltip",
|
|
1134
|
+
"toast": "Hiện toast",
|
|
1135
|
+
"toastMessage": "Đã lưu.",
|
|
1136
|
+
"twoFactor": "Thiết lập hai lớp",
|
|
1137
|
+
"inlineNote": "Listbox của Select cũng là một lớp phủ: nó cần nền đục nhất trong ba loại, vì một menu luôn nằm trên nội dung bất kỳ."
|
|
1138
|
+
},
|
|
1139
|
+
"error": {
|
|
1140
|
+
"title": "Bạn không có quyền xem báo cáo này"
|
|
1141
|
+
},
|
|
1142
|
+
"auth": {
|
|
1143
|
+
"title": "Đăng nhập",
|
|
1144
|
+
"requester": "Theme Lab đang yêu cầu quyền truy cập",
|
|
1145
|
+
"switch": "Đổi tài khoản",
|
|
1146
|
+
"or": "hoặc",
|
|
1147
|
+
"terms": "Điều khoản",
|
|
1148
|
+
"privacy": "Quyền riêng tư"
|
|
1149
|
+
},
|
|
1150
|
+
"chat": {
|
|
1151
|
+
"welcomeTitle": "Chào bạn",
|
|
1152
|
+
"welcomeBody": "Hỏi tôi về hoá đơn, chi phí hay chấm công.",
|
|
1153
|
+
"assistant": "Tôi có thể giúp gì?",
|
|
1154
|
+
"user": "Tóm tắt hoá đơn hôm qua giúp tôi.",
|
|
1155
|
+
"assistantName": "Trợ lý",
|
|
1156
|
+
"userName": "Bạn",
|
|
1157
|
+
"thoughts": "Các bước đã thực hiện",
|
|
1158
|
+
"placeholder": "Nhập tin nhắn"
|
|
1159
|
+
},
|
|
1160
|
+
"sample": {
|
|
1161
|
+
"alpha": "Khu vực phía Bắc",
|
|
1162
|
+
"beta": "Văn phòng trung tâm",
|
|
1163
|
+
"gamma": "Kho phía Nam",
|
|
1164
|
+
"delta": "Nhà phụ cảng",
|
|
1165
|
+
"epsilon": "Đội hiện trường",
|
|
1166
|
+
"one": "Phạm Thái Dương",
|
|
1167
|
+
"two": "Mai Sato",
|
|
1168
|
+
"three": "Diego Costa",
|
|
1169
|
+
"short": "Cập nhật vài phút trước.",
|
|
1170
|
+
"long": "Một bảng mẫu gọn gàng mới là lỗi, không phải kết quả: hàng này cố tình đặt một nhãn ba dòng cạnh một nhãn một từ, một chuỗi không ngắt được cạnh một ô rỗng, và chuỗi dài nhất mà layout có thể phải nhận.",
|
|
1171
|
+
"headline": "Bộ component này có khoác nổi một theme phức tạp không?",
|
|
1172
|
+
"linkLabel": "Đọc quy tắc phân giải token",
|
|
1173
|
+
"codeLabel": "Trích đoạn theme",
|
|
1174
|
+
"secure": "Phiên làm việc đã mã hoá",
|
|
1175
|
+
"syncing": "Đang đồng bộ",
|
|
1176
|
+
"marqueeLabel": "Tạm dừng danh sách chạy",
|
|
1177
|
+
"aspectTitle": "Vùng có tỉ lệ cố định"
|
|
1178
|
+
},
|
|
1179
|
+
"launcher": {
|
|
1180
|
+
"trigger": "Ứng dụng",
|
|
1181
|
+
"title": "Chuyển ứng dụng"
|
|
1182
|
+
},
|
|
1183
|
+
"org": {
|
|
1184
|
+
"trigger": "Tổ chức"
|
|
1185
|
+
},
|
|
1186
|
+
"twoFactor": {
|
|
1187
|
+
"title": "Thiết lập xác thực hai lớp",
|
|
1188
|
+
"description": "Quét mã bằng ứng dụng xác thực, rồi nhập sáu chữ số hiển thị.",
|
|
1189
|
+
"manualKey": "Hoặc nhập tay khoá này",
|
|
1190
|
+
"code": "Mã sáu chữ số",
|
|
1191
|
+
"recovery": "Hãy cất các mã khôi phục ở nơi an toàn. Chúng chỉ hiện một lần.",
|
|
1192
|
+
"acknowledge": "Tôi đã lưu lại"
|
|
1193
|
+
}
|
|
692
1194
|
}
|
|
693
1195
|
}
|
|
@@ -20,8 +20,8 @@ export default function Demo() {
|
|
|
20
20
|
subtitle="サインイン中のユーザー(アバター・名前・1 アクション)"
|
|
21
21
|
extra={
|
|
22
22
|
<>
|
|
23
|
-
<Select defaultValue="ja">
|
|
24
|
-
<SelectTrigger width="auto"
|
|
23
|
+
<Select aria-label="言語" defaultValue="ja">
|
|
24
|
+
<SelectTrigger width="auto">
|
|
25
25
|
<SelectValue />
|
|
26
26
|
</SelectTrigger>
|
|
27
27
|
<SelectContent>
|
|
@@ -333,7 +333,7 @@ export default function Demo() {
|
|
|
333
333
|
name={`priority-${task.id}`}
|
|
334
334
|
defaultValue={task.priority}
|
|
335
335
|
>
|
|
336
|
-
<SelectTrigger
|
|
336
|
+
<SelectTrigger size="sm">
|
|
337
337
|
<SelectValue />
|
|
338
338
|
</SelectTrigger>
|
|
339
339
|
<SelectContent>
|
|
@@ -122,8 +122,12 @@ export default function Demo() {
|
|
|
122
122
|
className="w-full sm:w-56"
|
|
123
123
|
/>
|
|
124
124
|
<ToolbarGroup label="ステータス">
|
|
125
|
-
<Select
|
|
126
|
-
|
|
125
|
+
<Select
|
|
126
|
+
aria-label="ステータス"
|
|
127
|
+
value={memberStatus}
|
|
128
|
+
onValueChange={setMemberStatus}
|
|
129
|
+
>
|
|
130
|
+
<SelectTrigger>
|
|
127
131
|
<SelectValue />
|
|
128
132
|
</SelectTrigger>
|
|
129
133
|
<SelectContent>
|
|
@@ -135,8 +139,8 @@ export default function Demo() {
|
|
|
135
139
|
</Select>
|
|
136
140
|
</ToolbarGroup>
|
|
137
141
|
<ToolbarGroup label="権限">
|
|
138
|
-
<Select value={memberRole} onValueChange={setMemberRole}>
|
|
139
|
-
<SelectTrigger
|
|
142
|
+
<Select aria-label="権限" value={memberRole} onValueChange={setMemberRole}>
|
|
143
|
+
<SelectTrigger>
|
|
140
144
|
<SelectValue placeholder="すべて" />
|
|
141
145
|
</SelectTrigger>
|
|
142
146
|
<SelectContent>
|
|
@@ -238,8 +242,8 @@ export default function Demo() {
|
|
|
238
242
|
onSearch={setSearch}
|
|
239
243
|
/>
|
|
240
244
|
<ToolbarGroup label="ステータス">
|
|
241
|
-
<Select value={status} onValueChange={setStatus}>
|
|
242
|
-
<SelectTrigger
|
|
245
|
+
<Select aria-label="ステータス" value={status} onValueChange={setStatus}>
|
|
246
|
+
<SelectTrigger>
|
|
243
247
|
<SelectValue placeholder="すべて" />
|
|
244
248
|
</SelectTrigger>
|
|
245
249
|
<SelectContent>
|
|
@@ -251,8 +255,12 @@ export default function Demo() {
|
|
|
251
255
|
</Select>
|
|
252
256
|
</ToolbarGroup>
|
|
253
257
|
<ToolbarGroup label="会計期間">
|
|
254
|
-
<Select
|
|
255
|
-
|
|
258
|
+
<Select
|
|
259
|
+
aria-label="会計期間"
|
|
260
|
+
value={fiscalPeriod}
|
|
261
|
+
onValueChange={setFiscalPeriod}
|
|
262
|
+
>
|
|
263
|
+
<SelectTrigger>
|
|
256
264
|
<SelectValue placeholder="期間を選択" />
|
|
257
265
|
</SelectTrigger>
|
|
258
266
|
<SelectContent>
|
|
@@ -303,8 +311,8 @@ export default function Demo() {
|
|
|
303
311
|
<CardContent>
|
|
304
312
|
<Toolbar hasActiveFilters={department !== "all"} onClear={() => setDepartment("all")}>
|
|
305
313
|
<ToolbarGroup label="部門">
|
|
306
|
-
<Select value={department} onValueChange={setDepartment}>
|
|
307
|
-
<SelectTrigger
|
|
314
|
+
<Select aria-label="部門" value={department} onValueChange={setDepartment}>
|
|
315
|
+
<SelectTrigger>
|
|
308
316
|
<SelectValue placeholder="部門を選択" />
|
|
309
317
|
</SelectTrigger>
|
|
310
318
|
<SelectContent>
|
|
@@ -317,8 +325,8 @@ export default function Demo() {
|
|
|
317
325
|
</Select>
|
|
318
326
|
</ToolbarGroup>
|
|
319
327
|
<ToolbarGroup label="勘定科目">
|
|
320
|
-
<Select defaultValue="all">
|
|
321
|
-
<SelectTrigger
|
|
328
|
+
<Select aria-label="勘定科目" defaultValue="all">
|
|
329
|
+
<SelectTrigger>
|
|
322
330
|
<SelectValue placeholder="科目を選択" />
|
|
323
331
|
</SelectTrigger>
|
|
324
332
|
<SelectContent>
|