@ya-accelerators/nextjs-framework 0.0.46 → 0.0.48

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.
Files changed (45) hide show
  1. package/dist/env.client.d.ts +1 -0
  2. package/dist/env.client.js +2 -0
  3. package/dist/env.client.js.map +1 -1
  4. package/dist/env.d.ts +1 -0
  5. package/dist/env.js +2 -0
  6. package/dist/env.js.map +1 -1
  7. package/dist/hooks/localStorage/index.js +3 -2
  8. package/dist/hooks/localStorage/index.js.map +1 -1
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/lib/index.d.ts +2 -0
  13. package/dist/lib/index.js +2 -0
  14. package/dist/lib/index.js.map +1 -1
  15. package/dist/lib/next-auth/index.js +15 -5
  16. package/dist/lib/next-auth/index.js.map +1 -1
  17. package/dist/lib/server-action/index.d.ts +2 -0
  18. package/dist/lib/server-action/index.js +20 -0
  19. package/dist/lib/server-action/index.js.map +1 -0
  20. package/dist/logger/index.d.ts +16 -0
  21. package/dist/logger/index.js +77 -0
  22. package/dist/logger/index.js.map +1 -0
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/dist/ui/composite/index.d.ts +0 -12
  25. package/dist/ui/composite/input/index.d.ts +0 -13
  26. package/dist/ui/composite/input/index.js +0 -2
  27. package/dist/ui/composite/input/index.js.map +1 -1
  28. package/dist/ui/layout/form/index.d.ts +2 -2
  29. package/dist/ui/layout/form/index.jsx +14 -2
  30. package/dist/ui/layout/form/index.jsx.map +1 -1
  31. package/dist/ui/layout/index.d.ts +1 -1
  32. package/dist/ui/types/index.d.ts +1 -6
  33. package/dist/ui/types/index.js.map +1 -1
  34. package/dist/util/index.js +15 -0
  35. package/dist/util/index.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/ui/composite/input/address/index.d.ts +0 -33
  38. package/dist/ui/composite/input/address/index.jsx +0 -132
  39. package/dist/ui/composite/input/address/index.jsx.map +0 -1
  40. package/dist/ui/composite/input/address/map.d.ts +0 -64
  41. package/dist/ui/composite/input/address/map.jsx +0 -111
  42. package/dist/ui/composite/input/address/map.jsx.map +0 -1
  43. package/dist/ui/composite/input/address/utils.d.ts +0 -23
  44. package/dist/ui/composite/input/address/utils.js +0 -66
  45. package/dist/ui/composite/input/address/utils.js.map +0 -1
@@ -1,64 +0,0 @@
1
- import { Rounded } from '../../../theme';
2
- declare global {
3
- interface Window {
4
- google: {
5
- maps: {
6
- Map: new (element: HTMLElement, options: GoogleMapOptions) => GoogleMap;
7
- Marker: new (options: GoogleMarkerOptions) => GoogleMarker;
8
- LatLng: new (lat: number, lng: number) => GoogleLatLng;
9
- event: {
10
- addListener: (instance: GoogleMap | GoogleMarker, eventName: string, handler: (e: GoogleMapEvent) => void) => void;
11
- };
12
- };
13
- };
14
- }
15
- }
16
- interface GoogleMapOptions {
17
- center: {
18
- lat: number;
19
- lng: number;
20
- };
21
- zoom: number;
22
- mapTypeControl: boolean;
23
- streetViewControl: boolean;
24
- fullscreenControl: boolean;
25
- }
26
- interface GoogleMarkerOptions {
27
- position: {
28
- lat: number;
29
- lng: number;
30
- };
31
- map: GoogleMap;
32
- draggable: boolean;
33
- }
34
- interface GoogleMap {
35
- setCenter: (position: {
36
- lat: number;
37
- lng: number;
38
- }) => void;
39
- }
40
- interface GoogleMarker {
41
- setPosition: (position: {
42
- lat: number;
43
- lng: number;
44
- }) => void;
45
- getPosition: () => GoogleLatLng;
46
- }
47
- interface GoogleLatLng {
48
- lat: () => number;
49
- lng: () => number;
50
- }
51
- interface GoogleMapEvent {
52
- latLng: GoogleLatLng;
53
- }
54
- interface GoogleMapProps {
55
- apiKey?: string;
56
- initialLat?: number;
57
- initialLng?: number;
58
- onLocationSelect: (lat: number, lng: number) => void;
59
- rounded?: Rounded;
60
- disabled?: boolean;
61
- className?: string;
62
- }
63
- export declare const GoogleMapPicker: ({ apiKey, initialLat, initialLng, onLocationSelect, rounded, disabled, className, }: GoogleMapProps) => import("react").JSX.Element;
64
- export {};
@@ -1,111 +0,0 @@
1
- 'use client';
2
- import LocationOnIcon from '@mui/icons-material/LocationOn';
3
- import classNames from 'classnames';
4
- import { useEffect, useRef, useState } from 'react';
5
- import { Component } from '../../../component';
6
- import { Rounded } from '../../../theme';
7
- export const GoogleMapPicker = ({ apiKey, initialLat = 35.6812, initialLng = 139.7671, onLocationSelect, rounded = Rounded.m, disabled = false, className, }) => {
8
- const mapRef = useRef(null);
9
- const [mapLoaded, setMapLoaded] = useState(false);
10
- const [selectedLocation, setSelectedLocation] = useState(initialLat && initialLng ? { lat: initialLat, lng: initialLng } : null);
11
- useEffect(() => {
12
- if (!apiKey || mapLoaded)
13
- return;
14
- const script = document.createElement('script');
15
- script.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places`;
16
- script.async = true;
17
- script.defer = true;
18
- script.onload = () => setMapLoaded(true);
19
- document.head.appendChild(script);
20
- return () => {
21
- document.head.removeChild(script);
22
- };
23
- }, [apiKey, mapLoaded]);
24
- useEffect(() => {
25
- if (!mapLoaded || !mapRef.current || !window.google)
26
- return;
27
- const mapOptions = {
28
- center: { lat: initialLat, lng: initialLng },
29
- zoom: 15,
30
- mapTypeControl: false,
31
- streetViewControl: false,
32
- fullscreenControl: false,
33
- };
34
- const map = new window.google.maps.Map(mapRef.current, mapOptions);
35
- let marker = null;
36
- if (selectedLocation) {
37
- marker = new window.google.maps.Marker({
38
- position: selectedLocation,
39
- map,
40
- draggable: true,
41
- });
42
- map.setCenter(selectedLocation);
43
- }
44
- window.google.maps.event.addListener(map, 'click', (e) => {
45
- if (disabled)
46
- return;
47
- const clickedLocation = {
48
- lat: e.latLng.lat(),
49
- lng: e.latLng.lng(),
50
- };
51
- if (marker) {
52
- marker.setPosition(clickedLocation);
53
- }
54
- else {
55
- marker = new window.google.maps.Marker({
56
- position: clickedLocation,
57
- map,
58
- draggable: true,
59
- });
60
- }
61
- setSelectedLocation(clickedLocation);
62
- onLocationSelect(clickedLocation.lat, clickedLocation.lng);
63
- });
64
- if (marker) {
65
- window.google.maps.event.addListener(marker, 'dragend', () => {
66
- if (disabled)
67
- return;
68
- const position = marker?.getPosition();
69
- if (position && marker) {
70
- const newLocation = {
71
- lat: position.lat(),
72
- lng: position.lng(),
73
- };
74
- setSelectedLocation(newLocation);
75
- onLocationSelect(newLocation.lat, newLocation.lng);
76
- }
77
- });
78
- }
79
- }, [mapLoaded, mapRef, initialLat, initialLng, selectedLocation, onLocationSelect, disabled]);
80
- const getRoundedClass = () => {
81
- switch (rounded) {
82
- case Rounded.none:
83
- return '';
84
- case Rounded.s:
85
- return 'rounded-small';
86
- case Rounded.m:
87
- return 'rounded-medium';
88
- case Rounded.l:
89
- return 'rounded-large';
90
- case Rounded.half:
91
- return 'rounded-[50%]';
92
- default:
93
- return 'rounded-medium';
94
- }
95
- };
96
- return (<div className={classNames('w-full', className)}>
97
- {selectedLocation && (<div className='mb-control-padding-sm flex items-center justify-end'>
98
- <LocationOnIcon className='text-primary mr-1'/>
99
- <Component.Typography.Label>
100
- {selectedLocation.lat.toFixed(6)}, {selectedLocation.lng.toFixed(6)}
101
- </Component.Typography.Label>
102
- </div>)}
103
-
104
- <div className={classNames('h-64 w-full border border-gray-300', getRoundedClass())}>
105
- {!apiKey ? (<div className='flex h-full items-center justify-center'>
106
- <Component.Typography.Label>Google Maps API key is not configured</Component.Typography.Label>
107
- </div>) : (<div ref={mapRef} className='h-full w-full'/>)}
108
- </div>
109
- </div>);
110
- };
111
- //# sourceMappingURL=map.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/address/map.tsx"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- export interface AddressLookupResult {
2
- zipCode: string;
3
- region: string;
4
- city: string;
5
- line1: string;
6
- lat?: number;
7
- lng?: number;
8
- }
9
- export declare const lookupJapaneseAddress: (zipCode: string) => Promise<AddressLookupResult | null>;
10
- export declare const lookupInternationalAddress: (zipCode: string, countryCode: string) => Promise<AddressLookupResult | null>;
11
- export interface CountryAddressFormat {
12
- labels: {
13
- zipCode: string;
14
- region: string;
15
- city: string;
16
- line1: string;
17
- line2: string;
18
- line3?: string;
19
- };
20
- order: Array<'zipCode' | 'region' | 'city' | 'line1' | 'line2' | 'line3'>;
21
- required: Array<'zipCode' | 'region' | 'city' | 'line1' | 'line2' | 'line3'>;
22
- }
23
- export declare const getCountryAddressFormat: (countryCode: string, translate?: (key: string) => string) => CountryAddressFormat;
@@ -1,66 +0,0 @@
1
- 'use client';
2
- export const lookupJapaneseAddress = async (zipCode) => {
3
- try {
4
- if (!/^\d{3}-?\d{4}$/.test(zipCode)) {
5
- return null;
6
- }
7
- const response = await fetch(`https://zipcloud.ibsnet.co.jp/api/search?zipcode=${encodeURIComponent(zipCode)}`);
8
- const data = await response.json();
9
- if (data.results && data.results.length > 0) {
10
- const result = data.results[0];
11
- return {
12
- zipCode,
13
- region: result.address1, // Prefecture
14
- city: result.address2, // City/Ward/Town
15
- line1: result.address3, // Street name
16
- lat: undefined,
17
- lng: undefined,
18
- };
19
- }
20
- return null;
21
- }
22
- catch (error) {
23
- console.error('Error looking up address:', error);
24
- return null;
25
- }
26
- };
27
- export const lookupInternationalAddress = async (zipCode, countryCode) => {
28
- if (countryCode === 'JP') {
29
- return lookupJapaneseAddress(zipCode);
30
- }
31
- return null;
32
- };
33
- export const getCountryAddressFormat = (countryCode, translate = (key) => key) => {
34
- const japanFormat = {
35
- labels: {
36
- zipCode: translate('zipCode'),
37
- region: translate('region'),
38
- city: translate('city'),
39
- line1: translate('line1'),
40
- line2: translate('line2'),
41
- },
42
- order: ['zipCode', 'region', 'city', 'line1', 'line2'],
43
- required: ['zipCode', 'region', 'city', 'line1'],
44
- };
45
- const usFormat = {
46
- labels: {
47
- zipCode: translate('Zip Code'),
48
- region: translate('State'),
49
- city: translate('City'),
50
- line1: translate('Street Address'),
51
- line2: translate('Apt, Suite, etc.'),
52
- line3: translate('Additional Info'),
53
- },
54
- order: ['line1', 'line2', 'city', 'region', 'zipCode', 'line3'],
55
- required: ['line1', 'city', 'region', 'zipCode'],
56
- };
57
- switch (countryCode) {
58
- case 'JP':
59
- return japanFormat;
60
- case 'US':
61
- return usFormat;
62
- default:
63
- return japanFormat; // Use Japan format as default
64
- }
65
- };
66
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/address/utils.ts"],"names":[],"mappings":"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"}